java list set map继承_Java集合中List、Set、Map理解

List Set继承Collection接口 Map不是

List可以存放重复元素 Set不可以 实现List接口的集合有:ArrayList、LinkedList、vector、Stack

ArrayList(线程不安全)和vector(线程安全)底层由数组组成(都是有序非同步的集合)

LInkedList(线程不安全)底层由双向链表组成

Set不可以存放重复元素 实现Set接口的集合由:TreeSet、HashSet、LinkedHashSet、EnumSet

TreeSet(非线程安全)由红黑树实现

HashSet(非线程安全)是查询速度最快的集合,内部由HashCode实现

HashSet集合判断两个元素相等的标准应该是先判断元素的hashcode(),如果不同则两个元素不同;如果两个元素的hashcode()相同,则再调用equals()进行比较,如果返回true,则两个元素相等,返回false则不想等。

LinkedHashSet(非线程安全)性能比HashSet好,但是插入时性能稍微逊色于HashSet。

Map接口不继承Collection 是由键值对组成(key-value) 实现map的集合有:HashMap、TreeMap、WeakHashMap、HashTable。

HaspMap (非线程安全)是非同步的 底层由数组+链表+红黑树实现

TreeMap (非线程安全)底层由红黑树实现

WeakHashMap (非线程安全)使用的是弱引用,适用于缓存

HashTable 是同步的 (线程安全)(因为通过synchronized锁) 继承自Dictionary类

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值