首先大家要知道Java中的集合有哪些?它的父类是哪个?
我们常用的集合有List,Set,Map,其中List和Set是继承Collection。
List下面有Arraylist和LinkedList。Set下面有HashSet,TreeSet,LinkHashSet。Map下面有HashMap,TreeMap,HashTable,LinkHashMap。我们就不细分了
现在我们来比较一下ArrayList和LinkedList的区别:
ArrayList(数据结构): 优点:查询速度快
缺点:添加和删除速度慢
LinkedList(链表结构):优点:添加和删除速度快
缺点:查询速度慢
HashSet,TreeSet和LinkedHashSet的区别?
①需要速度快的集合,使用HashSet
②需要集合有排序功能,使用TreeSet
③需要按照插入的顺序存储集合(先进先出),使用LinkedHashSet
List | Set | Map |
---|---|---|
可以允许重复的元素 | 不允许重复元素 | 键值对存储,键必须是唯一的 ,但值可以重复 |
可以插入多个null元素 | 只允许一个null元素 | 键只允许一个null,值可以允许 有多个null |
有序的容器,插入的顺序和 输出的顺序一样 | 无序容器 | 无序容器 |
下面说一下数组和集合的区别?
①数组的长度是固定的,集合的长度可变
②集合有动态的添加和删除元素
③数组只能存储相同数据类型的数据,集合可以存储不同数据类型的数据