

List等接口的实现子类有很多,仅列出常用的。



(Collection为接口,不能直接实例化,需要类实现接口)

如果是Collection接口,可以用迭代器和增强for循环两种方式遍历,如果是List接口的子类还能用普通for
① 使用Iterator(迭代器)

迭代器原理:

示例:

② 使用 增强for循环

示例:

③普通for循环


List集合的元素有序、可重复、有索引(0开始)




多线程时更适合用Vector,其是线程安全的

说明
LinkedList的底层操作机制
添加删除操作效率更高,不是通过数组扩容




添加和取出的顺序不一样,但取出的顺序是固定的,即每次运行都是固定顺序

实例:

①说明



②HashSet扩容机制

底层机制简要说明:

Set接口实现类—LinkedHashSet
说明:(有序,插入取出顺序一样,但插入表时不规律存储)、不重复)

底层源码解读:

Map接口常用方法

key相同,value不同时,新value替代旧value
Map语法
1、添加元素 .put
map.put(key,value);
2、通过get()方法获取key对应的value
map.get("not")


解析:
1、(少使用)
2、通过迭代器获取所有键(key),再通过map.get(key)遍历键来获取值 ⭐️
3、通过迭代/循环 EntrySet来获取K-V
4、直接获取所有值(value),再遍历
每种Map遍历方式中又包含可用增强for和迭代器两种遍历的方法.
小结:

基本介绍

扩容机制:


基本介绍

常用基本方法:
增\删\改\查(获取值)


List中:增删多:双链表增删更快; 改查多:通过数组的索引定位比较快;
插入和取出顺一致,但存储时是无序存储的;
TreeSet具备实现了Comparator接口的compare()方法,重写compare()方法可以自定义排序规则,对Integer类型数据存储顺序默认按数字从小到大排序,字母默认按从a-z排序.
TreeMap类似TreeSet,只是实现了compareable接口的compareTo()方法
介绍

例:
