它们主要可以分为两大类:Collection和Map。
-
Collection:它是单列集合的根接口,用于存储一系列的元素。其主要的实现类有:
- List:List是有序的集合,会按照元素插入的顺序保存元素。并且它允许包含重复的元素。主要的实现类有ArrayList、LinkedList等。
- ArrayList:基于数组实现,查找元素效率高,但插入和删除元素效率低,因为需要移动元素。
- LinkedList:基于双向链表实现,插入和删除元素效率高,但查找元素效率低,因为需要从头或尾部开始遍历。
- Set:Set是一种不包含重复的元素的集合。它的主要实现类有HashSet、LinkedHashSet、TreeSet等。
- HashSet:基于HashMap实现,元素没有顺序,不允许重复。
- LinkedHashSet:基于LinkedHashMap实现,元素按照插入顺序排列,不允许重复。
- TreeSet:基于红黑树实现,元素按照自然顺序排序,不允许重复。
- List:List是有序的集合,会按照元素插入的顺序保存元素。并且它允许包含重复的元素。主要的实现类有ArrayList、LinkedList等。
-
Map:它是双列集合的根接口,用于存储键值对。它的主要实现类有HashMap、LinkedHashMap、TreeMap等。
- HashMap:基于哈希表实现,允许使用null作为键或值,不保证映射的顺序。
- LinkedHashMap:基于哈希表和双向链表实现,它不仅保留了HashMap的特性,还维护了一个双向链表,使得它能够按照插入顺序或访问顺序来遍历元素。
- TreeMap:基于红黑树实现,能够按照键的自然顺序或者自定义顺序进行排序。
这些集合类各有优缺点,适用于不同的场景,我们可以根据实际需求选择合适的集合类。