• java集合类(二)


    第十六天知识点总结

    一、泛型                                                                                                                                                                                                                                                                                                                                                                                                                         

     泛型:java jdk 1.5 新特性。

     泛型的好处:

          1.运行时的错误提前到编译时。

          2.避免无谓的强制类型转换

      自定义方法泛型:自定义泛型就是一个数据类型的占位或一个数据类型变量,一般用TE来做这个占位符号,占位符号可以随意写,但是必须遵守标识符的命名规范

      方法泛型的格式:

       <占位符> T : 定义了一个泛型

    举例:

    Public  static  <T>T  test(T s){

        Return  s;

    }

    如果你传进去的是一个基本数据类型:接收的时候应该用它的包装类来接收.

    int Integer  short Short  double Double  float Float  byte Byte

    boolean  Boolean  long Long  char charactor

    自定义数组的工具类

    定义一个泛型类:

          定义格式

       class 类名<声明自定义的泛型> { }

    泛型类的使用注意点:

       1.泛型类上定义的自定义泛型的类型是在创建这个类对象时确定的。

       2.如果一个自定义泛型的类,在创建对象时没有指定,默认为Object类型。

       3.静态方法不能够使用类删自定义的泛型,必须在方法上定义一个泛型。

     

    泛型接口:

    泛型接口的定义方式:

     Interface 接口名<声明自定义的泛型> {   }

    接口泛型的使用注意点:

    1.接口上自定义的泛型在实现接口的时候被指定的

    2.如果实现接口是没有指定接口 ,那么就会默认为Object

    3.需要在创建接口实现类对象是指定数据类型,

      那么需要格式:class 类名<声明自定义泛型> implements 接口<声明自定义泛型>

     

    判断下列写法是否错误:

       ArrayList<String> list1 = new ArrayList<String>(); //true

       ArrayList<String> list2 = new ArrayList<Integer>();//false

       ArrayList<Integer> list3 = new ArrayList<String>();//false

       

      1. ArrayList list4 = new ArrayList<String>();//true

      2. ArrayList<String> list5 = new ArrayList();//true

      推荐使用第一种

     

    二、Map集合

      Map集合 接口 双列集合 key:value 类似于OC中的字典

     特点:存储数据是以键和值的方式,键不允许重复,值可以重复

    -----> HashMap 基于哈希表来存储数据的

    存储原理也使用哈希表来存放:

      HashMap添加了元素,首先会调用键的hashCode方法获得一个哈希值,然后经过运算获取一个位置。

     情况一:如果位置上没有元素,那么直接将该元素存放在此位置。

     情况二:如果位置上有元素,那么还会调用元素的equals方法与位置上的元素做比较,如果返回的是true,那么就被视为相同的键,就不存了,反之返回的是false,那么就可以存放该元素。

    -----> TreeMap:基于二叉树的结构存储,特点:以键来做自然排序

    使用注意点:

    1.TreeMap里添加元素时,如果元素的键具备自然排序功能,那么就会通过自然排序进行排序。

    2.TreeMap里添加元素时,如果元素的键不具备自然排序功能,键所属的类必须要实现Comparable接口,把这个键的比较规则定义在compareTo方法中。

    3.TreeMap里添加元素时,如果元素的键不具备自然排序功能,也没有实现Comparable接口,创建TreeMap的时候给他一个比较器

    结构:

     Class 类名implements Compartor 接口{

    }

    键的比较规则定义在compare方法中。

    -----> HashTable HashMap 一样的使用,线程安全。访问比较慢(了解)

    Map集合的使用注意点:

       1.键可以是任意对象,值也可以是任意对象

       2.Map集合中是可以嵌套list集合

    (重点掌握)Map集合常用的方法:

     添加:put(K key, V value);

           putAll(Map <?extends K,?extends V>  m);

     删除:clear();

           remove(Object key);

     获取:get(Object key);

           Size();

     判断:isEmpty();

           containsKey(Object key);

           containsValue(Object value);

     

      Map集合的遍历方式:

    通过迭代器来遍历:

      entrySet();

      keySet();

      values();

    Map.Entry: 接口:提供给用户来操作map集合

    getKey(); 获取键

    getValue();获取值

    setValue();更改值

     

  • 相关阅读:
    dedecms 织梦利用arcpagelist标签实现首页arclist分页
    notepad++使用正则表达式的查找替换
    织梦dedecms5.7二级域名文章图片不显示修改方法.相对路径改为绝对路径的方法
    织梦文章页分页导航条 分页代码副标题调用
    织梦导航 currentstyle 点击li添加class类 样式
    dede让channelartlist标签支持currentstyle属性 完美解决
    [转载]织梦DEDE多选项筛选_联动筛选功能的实现_二次开发
    Nginx Rewrite 规则入门 伪静态规则
    对拷 使用scp命令在两台linux上对拷文件或者文件夹
    Apache搭建简单的图片访问服务器
  • 原文地址:https://www.cnblogs.com/lizixiansheng/p/6134728.html
Copyright © 2020-2023  润新知