List、Map和Set都是接口,前两个继承于Collection接口,Map则没有继承该接口,Queue接口,有PriorityQueue类。
Collection继承层次结构图
1、List
List依靠索引来存取元素,可以有重复元素。List有ArrayList、Vector和LinkedList三种。
1.1、ArrayList
底层数据结构是数组,查询快,增删慢,线程不安全,效率高。
1.2、Vecto
底层数据结构是数组,查询快,增删慢,线程安全,效率低。
1.3、LinkedList
底层数据结构是链表,查询慢,增删快,线程不安全,效率高。
2、Map
Map保存键-值对(即key-value)映射,映射关系可以是一对一或多对一。Map有Hashtable、LinkedHashMap、HashMap和TreeMap。
Map继承层次结构图
2.1、是否有序
TreeMap是有序的,而HashMap和HashTable是无序的。
2.2、是否同步
Hashtable的方法是同步的,而HashMap的方法不同步。
2.3、是否线程安全
Hashtable线程安全,而HashMap线程不安全。
2.4、效率高低
HashMap效率较高,而Hashtable效率较低。
2.5、是否允许null值
Hashtable不允许null值,但HashMap允许null值。
3、Set*
Set不能存放重复元素,可用对象的equals()方法区分元素是否重复。Set有HashSet、LinkedHashSet和TreeSet三种。
3.1、HashSet
底层数据结构是哈希表,其元素无序但唯一。
可用方法hashCode()和equals()来保证元素唯一性。
3.2、LinkedHashSet
底层数据结构是链表和哈希表。其中,链表保证元素有序,而哈希表保证元素唯一。
3.3、TreeSet
底层数据结构是红黑树,其元素唯一且有序
以上就是动力节点Java培训机构小编介绍的“Java集合学习之list、Map和Set要点总结”的内容,希望对大家有帮助,如有疑问,请在线咨询,有专业老师随时为你服务。
相关文章
你适合学Java吗?4大专业测评方法
代码逻辑 吸收能力 技术学习能力 综合素质
先测评确定适合在学习