Java集合类

来源:互联网 发布:ipad不能用淘宝怎么办 编辑:程序博客网 时间:2024/04/30 18:16

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
原创粉丝点击