美文网首页
Java集合

Java集合

作者: 西部农民 | 来源:发表于2017-06-11 22:08 被阅读0次

    原文地址:http://www.logicbig.com/tutorials/core-java-tutorial/java-collections/java-collection-cheatsheet/
    翻译类型:参考总结
    文章状态:草稿
    绘图工具 : Gliffy (Chrome扩展)

    我为人人,人人为我,多多指正,多多建议,不断完善,共建社区,编不下去了~

    1.Java集合接口

    interface1.png

    2.如何选择

    2.1一般集合的选择

    howtochoose.png

    2.2 队列

    队列的选择其实比较直观,队列的remove()方法在删除一个元素的同时会返回被删除的元素。如果你需要按特定顺序排列的队列,选择PriorityQueue,否则选择ArrayQueue。

    2.3 是否需要线程安全?

    当你需要线程安全安全的集合类时,你应该通过以下方法将一个非线程安全的集合转换成一个线程安全的集合:
    Collection<T> synchronizedCollection(Collection<T> c)
    Set<T> synchronizedSet(Set<T> s)
    SortedSet<T> synchronizedSortedSet(SortedSet<T> s)
    NavigableSet<T> synchronizedNavigableSet(NavigableSet<T> s)
    List<T> synchronizedList(List<T> list)

    以上方法,会将所有方法都同步化(在'this'上加锁),这种一刀切的方法性能上不太好,当需要强调性能的时候,我们应当使用java.util.concurrent包中相应的集合实现类。我会在另一篇文章中详细介绍java.util.concurrent中的集合类。

    2.4 只读的集合

    有些时候,我们需要将一个集合设置成只读:
    Collection<T> unmodifiableCollection(Collection<T> c)
    Set<T> unmodifiableSet(Set<T> s)
    SortedSet<T> unmodifiableSortedSet(SortedSet<T> s)
    NavigableSet<T> unmodifiableNavigableSet(NavigableSet<T> s)
    List<T> unmodifiableList(List<T> list)

    3.集合实现类明细

    实现类 接口 是否线程安全 允许重复 允许null 顺序
    ArrayList List 插入顺序
    LinkedList List, Deque 插入顺序
    Vector List 插入顺序
    Stack List 继承Vector LIFO
    HashSet Set 不保证顺序
    LinkedHashSet Set 插入顺序
    TreeSet Set Comparator或Comparable
    EnumSet Set 枚举类型的定义顺序
    PriorityQueue Queue Comparator或Comparable
    ArrayDeque Deque 插入顺序

    相关文章

      网友评论

          本文标题:Java集合

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