zoukankan      html  css  js  c++  java
  • collection各实现类用途建议

    Collection接口:集合,下面有两大分支,List和Set,期中List是有序队列,元素可以重复,Set是集合,元素不能重复。

    AbstractCollection抽象类:实现了Collection大部分的接口。
    AbstractList抽象类:继承了AbstractCollection抽象类。AbstractSet抽象类:同样继承了AbstractCollection抽象类。
    List和Set实现类都分别继承了AbstractList和AbstractSet抽象类。


    List类的实现类常用的是LikedList、ArrayList、Vector和Stack;
    LinkedList:继承了AbstractSequence,是一个双向链表。可以当做堆栈、队列或者双向队列使用,支持序列化。
    ArrayList:是一个数组队列,相当于动态数组,提供了添加、修改、删除和遍历功能,是非线程安全的。建议单线程使用ArrayList,多线程使用Vector或者CopyOnWriteArrayList。
    Vector:是一个矢量队列,与ArrayList类似,但是属于线程安全的。
    Stack:栈,先进后出,继承于Vector。


    ArrayList和LinkedList区别
    ArrayList可以看做数组,可以快速随机访问,插入对象的速度慢,整个数组要后移操作复杂。
    LinkedList可以看做链表,插入删除数据相当快速方便,不能随机访问,只能遍历查找,随机读取速度慢。

    Map接口:映射接口,Map中存储的内容是键值对(key—value)
    Map接口的实现类:TreeMap、HashMap、WeakHashMap和HashTable
    TreeMap:有序的键值对,通过红黑树实现的,可用于给Map集合中的键进行排序,非线程安全。
    HashMap:是基于“拉链法”实现的散列表,键值对,但不保证次序,非线程安全。
    Hashtable:是基于“拉链法”实现的散列表,线程安全
    WeakHashMap:基于“拉链法”实现的散列表,弱键。当“弱键”被GC回收时,它对应的键值对也会被从WeakHashMap中删除;而HashMap中的键是强键

    Set接口的实现类有HashSet类和TreeSet类

    HashSet类:依赖于HashMap实现,HashSet元素也是无序的。

    TreeSet类:依赖于TreeMap实现,TreeSeet元素是有序的。

  • 相关阅读:
    理解 RESTful:理论与最佳实践
    Shiro 性能优化:解决 Session 频繁读写问题
    单点登录的三种实现方式
    理解 Spring(二):AOP 的概念与实现原理
    理解 Spring(一):Spring 与 IoC
    MFC查内存泄漏方法
    024 --- 第28章 访问者模式
    023 --- 第27章 解释器模式
    022 --- 第26章 享元模式
    021 --- 第25章 中介者模式
  • 原文地址:https://www.cnblogs.com/run127/p/5547576.html
Copyright © 2011-2022 走看看