java类集

Collection接口
collection
说明:
List(接口):元素按进入先后有序(添加顺序)保存,可重复可存储多个null

实现类实现方式是否同步线程安全查增删效率是否重复
LinkedList链表不同步线程不安全查询慢,增删快效率高元素可重复
ArrayList数组不同步线程不安全查询快,增删慢效率高元素可重复
Vector数组同步线程安全查询快,增删慢效率低元素可重复

Set(接口):元素不可重复(**hashcode()equals()**方法保证不可重复),无序做内部排序(与添加顺序无关)

实现类实现方式线程安全/效率null是否唯一是否有序
HashSet使用hash表(数组)不安全/效率高可存储null元素唯一无序
LinkedHashSet(继承HashSet)hash表+链表不安全/效率高可存储null元素唯一有序(插入顺序)
TreeSet红-黑树不安全不能储存null元素唯一有序(自定义排序规则)
注意:每一个存储到 哈希 表中的对象,都得提供 hashCode() 和 equals() 方法的实现,用来判断是否是同一个对象
   对于 HashSet 集合,我们要保证如果两个对象通过 equals() 方法返回 true,这两个对象的 hashCode 值也应该相同。
   链表保证元素的添加顺序,哈希表保证元素的唯一性
   以上三个都是线程不安全的类,解决办法:
   		Set set = Collections.synchronizedSet(Set对象)

Map(接口) 键值对的集合(双列集合)
map

实现类实现方式是否同步线程安全排序null
HashMaphash表(保证k唯一)+散列表不同步线程不安全无序k,v均可为null
LinkedHashMap(继承HashMap)双向链表(保证元素存取顺序一致)和hash表实现保证k唯一)不同步不安全有序k,v均可为null
HashTablehash表+散列表同步安全无序k,v不能为null
TreeMap红黑数(保证键的排序和唯一性)不同步不安全自然排序和定制排序k不能为null,v能
concurrenthashmap散列表(数组+链表+红黑树)同步安全无序k,v不能为null
WeakHashMap(继承HashMap)散列表(数组+链表)不同步不安全无序k,v可以为null
注意:HashMap底层依赖hashcode和equals,在键值为对象的时候需要重写这两个方法,这两个方法都可以通过右键直接生成。
	**散列表**(JDK7:数组+链表,JDK8:数组+链表+红黑树)

注:内容为本人总结而来,涉码不深,可能有误,只供参考!欢迎指出有误的地方

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值