1、 集合框架:
- 用于存储数据的容器
- 特点,对象封装数据,集合用于存储对象
- 对象的长度确定可以使用数组,不确定可以使用集合,因为集合是可变长度的
2、集合对象和数组对象的区别:
- 1、数组是固定长度的;集合可变长度的。
- 2、数组可以存储基本数据类型,也可以存储引用数据类型;集合只能存储引用数据类型。
- 3、数组存储的元素必须是同一个数据类型;集合存储的对象可以是不同数据类型。
3、数据结构
- 就是容器中存储数据的方式。
- 对于集合容器,有很多种。因为每一个容器的自身特点不同,其实原理在于每个容器的内部数据结构不同。
- 集合容器在不断向上抽取过程中,出现了集合体系。在使用一个体系的原则:参阅顶层内容。建立底层对象。
4、使用集合框架的好处
- 容量自增长
- 提供了高性能的数据结构和算法,使编码更轻松,提高程序速度与质量
- 可以方便的扩展或改写集合,提供代码复用性和可操作性
5、Iterator接口
- 用来遍历集合元素的接口
6、Collection接口和Map
- Collection接口是List和Set集合的父类
- Collection一次存一个元素,是单列集合;
- Map一次存一对元素,是双列集合。Map存储的一对元素:键–值,键(key)与值(value)间有对应(映射)关系。
7、Collection集合
- List集合:有序(元素存入集合的顺序和取出的顺序一致),元素都有索引。元素可以重复。
- Set集合:无序(存入和取出顺序有可能不一致),不可以存储重复元素。必须保证元素唯一性。
8、List集合
- List集合是元素有序并且可以重复的集合
- List集合的主要实现有:ArrayList、LinkedList、Vector
9、Set集合
- Set集合元素无序(存入和取出的顺序不一定一致),并且没有重复对象。
- Set的主要实现类:HashSet, TreeSet。
10、Map集合
- Map 是一种把键对象和值对象映射的集合,它的每一个元素都包含一对键对象和值对象。
- Map没有继承于Collection接口,从Map集合中检索元素时,只要给出键对象,就会返回对应的值对象。
- Map 的常用实现类:HashMap、TreeMap、HashTable、LinkedHashMap、ConcurrentHashMap
11、ArrayList、LinkedList、Vector的区别
12、HashSet、TreeSet、LinkedHashSet的区别
13、HashMap、HashTable、TreeMap的区别
- TreeMap:基于红黑树实现。
- HashMap:基于哈希表实现。
- HashTable:和 HashMap 类似,但它是线程安全的,这意味着同一时刻多个线程可以同时写入 HashTable 并且不会导致数据不一致。它是遗留类,不应该去使用它。现在可以使用 ConcurrentHashMap 来支持线程安全,并且 ConcurrentHashMap 的效率会更高,因为 ConcurrentHashMap 引入了分段锁。
- LinkedHashMap:使用双向链表来维护元素的顺序,顺序为插入顺序或者最近最少使用(LRU)顺序。
14、Collections工具类
Collections:集合工具类,方便对集合的操作。这个类不需要创建对象,内部提供的都是静态方法。