java list 转 set_Java集合List、Map和Set知识要点小结

#头条公开课繁星计划#

#Java#

List、Map和Set都是接口,前两个继承于Collection接口,Map则没有继承该接口,Queue接口,有PriorityQueue类。

93f6015babf9f8b2406a332ee5f48f79.png

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。

7933b64e5c8eb46e0308381faa7c9189.png

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

底层数据结构是红黑树,其元素唯一且有序。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值