目录
3.1 List集合特有方法(List类继承自Collection类)
3.1.1 ArrayList集合 (ArrayList类继承自List类)
3.1.2 LinkedList集合(LinkedList类继承自List类)
3.2 Set集合特点(Set类继承自Collection类)
3.2.1 HashSet集合(HashSet类继承自Set类)
3.2.2 LinkedHashSed集合(LinkedHashSet类继承自Set类)
3.2.3 TreeSet集合(TreeSet类继承自Set类)
5.3 Map集合遍历方式三(Lambda表达式,主要使用方式,JDK8开始可以使用)
5.4 HashMap集合(HashMap类继承自Map类)
5.5 LinkedHashMap集合(LinkedHashMap类继承自Map类)
5.6 TreeMap集合(TreeMap类继承自Map类)
1.集合与数组的对比,及使用场景
集合的使用场景:
6.如果对象需要键值对,使用Map集合类,例如购物车系统中商品对象与其购买数量。
———————————————————————————————————————————
2.Conllection集合的体系结构
———————————————————————————————————————————
3.collection集合的常用API
———————————————————————————————————————————
3.1 List集合特有方法(List类继承自Collection类)
List集合特点:有序,可重复,有索引
———————————————————————————————————————————
3.1.1 ArrayList集合 (ArrayList类继承自List类)
ArrayList集合特点:底层是基于数组实现的,查询元素快,增删相对慢
扩展:如果ArrayList集合存储的元素超过容量会按照1.5倍扩容。
———————————————————————————————————————————
3.1.2 LinkedList集合(LinkedList类继承自List类)
LinkedList集合特点:底层是基于双链表实现的,查询元素相对慢,增删首尾元素非常快
扩展:LinkedList用来做栈储存的时候,可用push()方法替代addFirst();pop()方法替代removeFirst(),方法功能完全一样,只是名字不同,为的是体现出一种压栈、弹栈的思想,显得更专业。
———————————————————————————————————————————
3.2 Set集合特点(Set类继承自Collection类)
———————————————————————————————————————————
3.2.1 HashSet集合(HashSet类继承自Set类)
HashSet集合特点:底层采取哈希表存储数据,哈希表是一种对于增删改查性能都较好的结构。
哈希表的组成:
JDK8之前底层使用数组+链表组成;
JDK8之后底层使用数组+链表+红黑树组成。
原理:
JDK8之后当链表长度超过8时自动将链表转换为红黑树
———————————————————————————————————————————
3.2.2 LinkedHashSed集合(LinkedHashSet类继承自Set类)
与HashSed集合相比只是多了一个双链表记录存储顺序
———————————————————————————————————————————
3.2.3 TreeSet集合(TreeSet类继承自Set类)
TreeSet集合特点:TreeSet集合是一定要排序的,对于数值类型Integer、Double官方默认按照升序排序,字符串型默认按照首字符编号升序排序,若要存储自定义类型则需要自定义排序规则。
重写比较规则示例:
两种方式中关于返回值规则: