导图社区 JavaCollection类
这是一篇关于JavaCollection类的思维导图,主要内容有单列Collection、双列Map、迭代器、泛型等。
社区模板帮助中心,点此进入>>
互联网9大思维
组织架构-单商户商城webAPP 思维导图。
域控上线
python思维导图
css
CSS
计算机操作系统思维导图
计算机组成原理
IMX6UL(A7)
考试学情分析系统
集合类
单列 Collection
List 有序、可重复
ArrayList
ArrayList数据结构是数组,查询快,增删慢
LinkedList
LinkedList底层数据结构是列表,增删快,查询慢
Set 无序、不可重复
HashSet
底层数据结构是哈希表(链表+数组)
子主题对集合的迭代顺序不做任何保证
元素不可重复
TreeSet
元素有序,有序不是指存储顺序,而是按照一定规则进行排序
1.TreeSet():根据元素自然排序进行排序
TreeSet(Comparator comparator):根据指定比较器进行排序
comparator
继承自Comparator接口,重写compareTo方法
返回0认为后面的元素都与第一个元素相同,只输出第一个元素,其他忽略
返回正数认为后面元素都比前一个大,所以按存储顺序输出
返回负数认为后面元素都比前一个小,所以按存储顺序反向输出
LinkedHashSet
哈希表和链表实现的Set接口,具有可预测的迭代次数
由链表保证有序,元素存储和取出顺序一致
非线程安全
双列 Map
HashMap
键值不允许重复
键值重复值就会替代前一个值
因为是接口不能直接创建对象,只能通过HashMap实现类创建对象
采用多态的方式
迭代器
Iterator<E> iterator
返回此集合中元素的迭代器,通过方法iterator()得到
是依赖于集合存在的方法
注意 Iterator是一个接口
迭代器在便利过程中不得修改集合中的元素长度,否则会引发并发修改异常
ListIterator
可在任意方向遍历列表的迭代器,在迭代期间对列表进行修改,并可获得列表中迭代器得位置
泛型
定义一个泛型T 格式:class 类名<T>{} 此时T可以为任意类型
java 中泛型标记符:E - Element (在集合中使用,因为集合中存放的是元素)T - Type(Java 类)K - Key(键)V - Value(值)N - Number(数值类型)? - 表示不确定的 java 类型
泛型通配符
类型通配符:<?> list<?>:表示未知元素类型的list,可以匹配任何类型 仅表示它是各种泛型list的父类,不能把元素添加进去
类型通配符上限:<? extends 类型> * list<? extends Number>:它表示的类型是Number或者是其子类型 * 只能是自己本身或者比自己小的类型
类型通配符下限:<? super 类型> * list<? super Number>:它表示的类型是Number或者是其父类型 * 只能是自己本身或者比自己大的类型
可变参数
* 格式: * 修饰符 返回值类型 方法名(数据类型...变量名) * 实际是把传来的东西编程了数组模式 * 只能在...变量名前面加变量