zoukankan      html  css  js  c++  java
  • Collection集合

     

    一些关于集合内部算法可以查阅这篇文章《容器类总结》

    (Abstract+)

    Collection

    子类:ListQueueSet

    增:

    • add(E):boolean
    • addAll(Collection<? extends E>):boolean

    删:

    • remove(Object):boolean
    • removeAll(Collection<?>):boolean
    • retainAll(Collection<?>):boolean
    • removeIf(Predicate<? super E>):boolean
    • clear()

    查:

    • contains(Object):boolean
    • containsAll(Collection<?>):boolean
    • size():int
    • isEmpty():boolean
    • toArray():Object[]
    • toArray(T[]):T[]
    • Collections.max(Collection<? extends T>):T
    • Collections.max(Collection<? extends T>, Comparator<? super T>):T
      求最大值
    • Collections.min(Collection<? extends T>):T
    • Collections.min(Collection<? extends T>, Comparator<? super T>):T
      求最小值

    工具:

    • iterator():Iterator<E>
    • spliterator():Spliterator<E>
    • stream():Stream<E>
    • parallelStream():Stream<E>
    • Collections.unmodifiableCollection(Collection<? extends T>):Collection<T>
      只读模式包装
    • Collections.synchronizedCollection(Collection<T>):Collection<T>
      线程安全包装

     

    (Abstract+)

    (AbstractSequentia+)

    List

    父类:Collection

    子类:ArrayListLinkedListVectorStackCopyOnWriteArrayList

    增:

    • add(int, E)
    • addAll(int, Collection<? extends E>):boolean

    删:

    • remove(int):E

    改:

    • set(int, E):E
    • replaceAll(UnaryOperator<E>)
    • sort(Comparator<? super E>)
    • Collections.swap(List<?>, int, int)
      交换两元素位置

    查:

    • get(int):E
    • indexOf(Object):int
    • lastIndexOf(Object):int
    • subList(int, int):List<E>
      子集

    工具:

    • listIterator():ListIterator<E>
    • listIterator(int):ListIterator<E>
    • Collections.unmodifiableList(List<? extends T>):List<T>
      只读模式包装
    • Collections.synchronizedList(List<T>):List<T>
      线程安全包装

    ArrayList

    父类:ListCollection

    改:

    • ensureCapacity(int)
    • trimToSize()

    LinkedList

    父类:ListDequeQueueConnection

    特征:链式存储

    CopyOnWriteArrayList

    父类:ListCollection

    特征:线程安全

    作用:改写操作加锁,读取操作不加锁,改写操作会先把集合复制一份,然后在复本上进行改写操作,结束后把集合的引用指向复本。

    增:

    • addIfAbsent(E):boolean
      如果目标元素不存在于集合中就添加,并返回true,否则返回false。
    • addAllAbsent(Collection<? extends E>):int
      和上同理,返回成功添加元素的数量。

    查:

    • indexOf(E, int):int
      从指定索引位置开始查找元素。
    • lastIndexOf(E, int):int
      和上同理。

    Vector

    父类:ListCollection

    子类:Stack

    特征:线程安全

    增:

    • addElement(E)
    • insertElementAt(E, int)

    删:

    • removeAllElements()
    • removeElement(Object):boolean
    • removeElementAt(int)

    改:

    • setElementAt(E, int)
    • setSize(int)
    • ensureCapacity(int)
    • trimToSize()

    查:

    • firstElement():E
    • lastElement():E
    • elementAt(int):E
    • elements():Enumeration<E>
    • indexOf(Object, int):int
    • lastIndexOf(Object, int):int
    • capacity():int
    • copyInto(Object[])

    Stack

    父类:VectorListCollection

    特征:线程安全;先入后出

    增:

    • push(E):E

    删:

    • pop():E

    改:

    • peek():E
    • search(Object):int
    • empty():boolean

    (Abstract+)

    Queue

    父类:Collection

    子类:DequeConcurrentLinkedQueueBlockingQueueLinkedList

    增:

    • offer(E):boolean

    删:

    • poll():E
    • remove():E

    查:

    • peek():E
    • element():E

    ConcurrentLinkedQueue

    父类:QueueCollection

    特征:链式存储;线程安全;先进先出

    BlockingQueue

    父类:QueueCollection

    子类:ArrayBlockingQueueLinkedBlockingQueuePriorityBlockingQueueDelayQueue

    SynchronousQueueTransferQueueLinkedTransferQueueBlockingDeque

    增:

    • offer(E, long, TimeUnit):boolean
    • put(E)

    删:

    • poll(long, TimeUnit):E
    • take():E
    • drainTo(Collection<? super E>):int
    • drainTo(Collection<? super E>, int):int

    查:

    • remainingCapacity():int

    ArrayBlockingQueue

    父类:BlockingQueueQueueCollection

    特征:线程安全;先进先出;队满时阻塞进队线程;队空时阻塞出队线程;

    LinkedBlockingQueue

    父类:BlockingQueueQueueCollection

    特征:链式存储;线程安全;先进先出;队满时阻塞进队线程;队空时阻塞出队线程;

    PriorityBlockingQueue

    父类:BlockingQueueQueueCollection

    特征:线程安全;策略排序;队空时阻塞出队线程;

    查:

    • comparator():Comparator<? super E>

    DelayQueue<E extends Delayed>

    父类:BlockingQueueQueueCollection

    特证:线程安全;策略排序;队空时或队头未到期时,阻塞出队线程;

    SynchronousQueue

    父类:BlockingQueueQueueCollection

    特征:线程安全;先进后出;元素进队(put)后,阻塞进队线程,至元素出队为止;队空时阻塞出队线程;

    TransferQueue

    父类:BlockingQueueQueueCollection

    子类:LinkedTransferQueue

    增:

    • transfer(E)
    • tryTransfer(E):boolean
    • tryTransfer(E, long, TimeUnit):boolean

    查:

    • getWaitingConsumerCount():int
    • hasWaitingConsumer():boolean

    LinkedTransferQueue

    父类:TransferQueueBlockingQueueQueueCollection

    特征:线程安全;先进先出;元素进队(transfer)后,阻塞进队线程,至元素出队为止;队空时阻塞出队线程;

    Deque

    父类:QueueCollection

    子类:ArrayDequeBlockingDequeLinkedList

    增:

    • addFirst(E)
    • addLast(E)
    • offerFirst(E):boolean
    • offerLast(E):boolean
    • push(E):void

    删:

    • removeFirst():E
    • removeLast():E
    • removeFirstOccurrence(Object):boolean
    • removeLastOccurrence(Object):boolean
    • pollFirst():E
    • pollLast():E
    • pop():E

    查:

    • getFirst():E
    • getLast():E
    • peekFirst():E
    • peekLast():E

    工具:

    • descendingIterator():Iterator<E>

    ArrayDeque

    父类:DequeQueueCollection

    BlockingDeque

    父类:DequeBlockingQueueQueueCollection

    子类:LinkedBlockingDeque

    增:

    • offerFirst(E, long, TimeUnit):boolean
    • offerLast(E, long, TimeUnit):boolean
    • putFirst(E)
    • putLast(E)

    删:

    • pollFirst(long, TimeUnit):E
    • pollLast(long, TimeUnit):E
    • takeFirst():E
    • takeLast():E

    LinkedBlockingDeque

    父类:BlockingDequeBlockingQueueDequeQueueCollection

     

    (Abstract+)

    Set

    父类:Collection

    子类:HashSetTreeSetSortedSetNavigableSetEnumSetCopyOnWriteArraySet

    特征:代表不可重复序列

    工具:

    • Collections.unmodifiableSet(Set<? extends T>):Set<T>
      只读模式包装
    • Collections.synchronizedSet(Set<E>):Set<E> 
      线程安全包装

    HashSet

    父类:SetCollection

    子类:LinkedHashSet

    特征:不可重复;策略排序(哈希表算法),一般代表无序

    LinkedHashSet

    父类:HashSetSetCollection

    特征:不可重复;保留加入序

    SortedSet

    父类:SetCollection

    子类:TreeSetNavigableSet

    特征:代表有序

    查:

    • first():E
    • last():E
    • headSet(E):SortedSet<E>
    • tailSet(E):SortedSet<E>
    • subSet(E, E):SortedSet<E>
    • comparator():Comparator<? super E>

    工具:

    • Collections.synchronizedSortedSet(SortedSet<T>):SortedSet<T>
      线程安全包装
    • Collections.unmodifiableSortedSet(SortedSet<T>):SortedSet<T>
      只读模式包装

    NavigableSet

    父类:SortedSetSetCollection

    子类:TreeSet

    特征:提供高级操作

    删:

    • pollFirst():E
    • pollLast():E

    查:

    • ceiling(E):E
    • floor(E):E
    • higher(E):E
    • lower(E):E
    • headSet(E, boolean):NavigableSet<E>
    • tailSet(E, boolean):NavigableSet<E>
    • subSet(E, boolean, E, boolean):NavigableSet<E>
    • descendingSet():NavigableSet<E>

    工具:

    • descendingIterator():Iterator<E>
    • Collections.unmodifiableNavigableSet(NavigableSet<T>):NavigableSet<T>
      只读模式包装
    • Collections.synchronizedNavigableSet(NavigableSet<T>):NavigableSet<T>
      线程安全包装

    TreeSet

    父类:NavigableSetSortedSetSetCollection

    特征:不可重复;策略排序(红黑树算法);不能有空元素

    EnumSet<E extends Enum<E>>

    父类:SetCollection

    特征:用于枚举类型

    构建:

    • s+allOf(Class<E>):ElemSet<E>
      全集
    • s+noneOf(Class<E>):ElemSet<E>
      空集
    • s+copyOf(Collection<E>):ElemSet<E>
    • s+copyOf(EnumSet<E>):ElemSet<E>
    • s+complementOf(EnumSet<E>):ElemSet<E>
      补集
    • s+of(E...):ElemSet<E>
    • s+range(E, E):ElemSet<E>

    CopyOnWriteArraySet

    父类:SetCollection

    特征:线程安全

    作用:改写操作加锁,读取操作不加锁,改写操作会先把集合复制一份,然后在复本上进行改写操作,结束后把集合的引用指向复本。

    待续更新!

  • 相关阅读:
    dsadsad
    线程池,封装使用,实现控制子线程
    如何能很好地安排好自己的时间?
    中文验证码
    海量数据处理专题(七)——数据库索引及优化
    java tree jtree的使用
    基于Cookie的单点登录(SSO)系统介绍
    急求VS2010的Cookie解决方法
    微软企业库5.0 学习之路系列文章索引
    Net 4.0 Parallel编程(八)Task中的数据共享(中)
  • 原文地址:https://www.cnblogs.com/hvicen/p/6246606.html
Copyright © 2011-2022 走看看