Java集合类

Map子类HashMap Hashtable TreeMap ,HashMap子类LinkedHashMap
Set子类HashSet TreeSet ,HashSet子类LinkedHashSet


Map相关

HashMap的key可以为null,并且最多有一个元素key为null,插入的数据无序,线程不安全, value可以为null。
HashTable 的key和value都不能为null,否则会报空指针异常,线程安全,无序
TreeMap 根据key排序,key必须实现Comparable接口,所以key不能为null,会抛出
throw new ClassCastException(key.getClass().getName() + ” is not Comparable”);线程不安全。
LinkedHashMap 按插入先后保存数据,其他和hashmap差不多


Set相关

HashSet无序,内部用HashMap实现,线程不安全
TreeSet 根据value排序,value必须实现Comparable接口,内部使用TreeMap实现,线程不安全
LinkedHashSet内部使用LinkedHashMap实现,安插入顺序保存,线程不安全,
vector是线程同步的,所以它也是线程安全的,而arraylist是线程异步的,是不安全的,ArrayList 和Vector是采用数组方式存储数据,LinkedList使用双向链表实现存储


其他

ArrayList
1、CopyOnWriteArrayList线程安全
HashMap
1、Collections类里面有synchronizedMap可以把一个map对象变成线程安全的,其他set list也有类似方法,
2、有一个类ConcurrentHashMap,线程安全,但是比HashTable效率高,
HashSet
1、可以使用Collections.newSetFromMap(new ConcurrentHashMap

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值