美文网首页
8.描述List、Map、Set的特点

8.描述List、Map、Set的特点

作者: 2cb3a7b6c710 | 来源:发表于2017-10-21 13:09 被阅读0次
    一、List:、有顺序以线性方式存储,可以存放重复对象
    线程安全方法:List list = Collections.synchronizedList(new LinkedList(...));
    LinkedList:双向链表实现存储  索引数据慢插入数度较快  线程不安全(比安全性能好)
    ArrayList:数组方式存储数据  索引数据快插入数据慢  线程不安全
    Vector:数组方式存储数据  索引数据快插入数据慢  线程安全
    Stack:继承自Vector,实现一个后进先出的堆栈
    
    二、Set:无顺序,不包含重复的元素
    HashSet:为快速查找设计的Set。存入HashSet的对象必须定义hashCode()。  
    TreeSet: 保存次序的Set, 底层为树结构。使用它可以从Set中提取有序的序列。  
    LinkedHashSet:具有HashSet的查询速度,且内部使用链表维护元素的顺序(插入的次序)。于是在使用迭代器遍历Set时,结果会按元素插入的次序显示。
    
    三、Map:键必须是唯一
    同步方法:Map m = Collections.synchronizedMap(new TreeMap(...));
    Hashtable:基于散列表的实现  允许空键空值  线程安全
    HashMap:基于散列表的实现  允许空键空值  线程不安全  (与Hashtable基本一致)
    TreeMap: 基于红黑树数据结构的实现  不允许空键空值  线程不安全
    WeakHashMap:改进的HashMap,它对key实行“弱引用”,如果一个key不再被外部所引用,那么该key可以被GC回收。
    在除需要排序时使用TreeSet,TreeMap外,都应使用HashSet,HashMap,因为他们的效率更高。
    
    
    
    
    
    

    相关文章

      网友评论

          本文标题:8.描述List、Map、Set的特点

          本文链接:https://www.haomeiwen.com/subject/fksiuxtx.html