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

(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

子类:ArrayListLinkedListVectorStack

增:

  • 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

特征:链式存储

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

子类:HashSetTreeSetSortedSetNavigableSetEnumSet

特征:代表不可重复序列

工具:

  • 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>

待续更新!

Collection集合的更多相关文章

  1. 浅谈Collection集合

    俗话说:一个东西,一件事都离不开三句话:"是什么,为什么,怎么办" 集合是什么: 集合简单的说一个数组集合的高级体现,用来存储数据或对象的容器: 集合为什么存在: 集合只是体现了对 ...

  2. Collection集合的功能及总结

    Collection集合是集合顶层接口,不能实例化 功能 1.添加功能 boolean add(Object obj):添加一个元素 boolean addAll(Collection c):添加一个 ...

  3. JAVA collection集合之 扑克牌游戏

    主要内容:这里使用collection集合,模拟香港电影中大佬们玩的扑克牌游戏. 1.游戏规则:两个玩家每人手中发两张牌,进行比较.比较每个玩家手中牌最大的点数,大小由A-2,点数大者获胜.如果点数相 ...

  4. Collection集合List、Set

    Collection集合,用来保存一组数据的数据结构. Collection是一个接口,定义了所有集合都应该包含的特征和行为 Collection派生出了两类集合 List和Set List接口:Li ...

  5. Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)

    首先,我们先看一下Collection集合的基本结构: 1.Collection接口 Collection是最基本集合接口,它定义了一组允许重复的对象.Collection接口派生了两个子接口Set和 ...

  6. java.util.Map按照key值合并的value的Collection 集合中。

    用java实现把多个map的内容合并的一个resultMap中 代码大致如下 /**  * @author Shalf  */ public class MapUtil { /** * 把partMa ...

  7. javad的Collection集合

    集合框架:★★★★★,用于存储数据的容器. 特点: 1:对象封装数据,对象多了也需要存储.集合用于存储对象. 2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合.因为集合是可变长度的. 集合 ...

  8. Java基础知识强化之集合框架笔记13:Collection集合存储学生对象并遍历

    1. Collection集合存储学生对象并遍历: 需求:存储自定义对象并遍历Student(name,age) 分析: (1)创建学生类 (2)创建集合对象 (3)创建学生对象 (4)把学生对象添加 ...

  9. Java基础知识强化之集合框架笔记12:Collection集合存储字符串并遍历

    1.  Collection集合存储字符串并遍历 分析: (1)创建集合对象 (2)创建字符串对象 (3)把字符串对象添加到集合中 (4)遍历集合 2. 代码示例: package cn.itcast ...

  10. Java基础知识强化之集合框架笔记09:Collection集合迭代器使用的问题探讨

    1.Collection集合迭代器使用的问题探讨: (1)问题1:能用while循环写这个程序,我能不能用for循环呢?                  可以使用for循环替代. (2)问题2:不要 ...

随机推荐

  1. CLR 这些年有啥变化吗?

    引言 首先想给初学者推荐下<CLR via C#>这本好书,做.Net开发的开发者应该都读一下.为避免广告之嫌,所以这里只提供豆瓣书评的链接. CLR 作为.Net 程序跨平台运行的载体, ...

  2. ASP.NET MVC5+EF6+EasyUI 后台管理系统(63)-Excel导入和导出-自定义表模导入

    系列目录 前言 上一节使用了LinqToExcel和CloseXML对Excel表进行导入和导出的简单操作,大家可以跳转到上一节查看: ASP.NET MVC5+EF6+EasyUI 后台管理系统(6 ...

  3. .net 大型分布式电子商务架构说明

    .net大型分布式电子商务架构说明 背景 构建具备高可用,高扩展性,高性能,能承载高并发,大流量的分布式电子商务平台,支持用户,订单,采购,物流,配送,财务等多个项目的协作,便于后续运营报表,分析,便 ...

  4. CSS垂直居中的11种实现方式

    今天是邓呆呆球衣退役的日子,在这个颇具纪念意义的日子里我写下自己的第一篇博客,还望前辈们多多提携,多多指教! 接下来,就进入正文,来说说关于垂直居中的事.(以下这11种垂直居中的实现方式均为笔者在日常 ...

  5. 【HanLP】资料链接汇总

    Java中调用HanLP配置 HanLP自然语言处理包开源官方文档 了解HanLP的全部 自然语言处理HanLP 开源自由的汉语言处理包主页 GitHub源码 基于hanLP的中文分词详解-MapRe ...

  6. Velocity初探小结--velocity使用语法详解

    做java开发的朋友一般对JSP是比较熟悉的,大部分人第一次学习开发View层都是使用JSP来进行页面渲染的,我们都知道JSP是可以嵌入java代码的,在远古时代,java程序员甚至在一个jsp页面上 ...

  7. Javascript 严格模式详解

    转自http://www.ruanyifeng.com/blog/2013/01/javascript_strict_mode.html 一.概述 除了正常运行模式,ECMAscript 5添加了第二 ...

  8. 原生JavaScript实现hasClass、addClass、removeClass、toggleClass

    兼容IE6+,因IE6.IE7.IE8不支持Array.prototype.indexOf()和String.prototype.trim(),分别用Polyfill实现支持. 详细: indexOf ...

  9. Android Studio:Failed to resolve ***

    更换电脑后,也更新了所有的SDK的tool,仍然报错:Failed to resolve  各种jar包,出现这种问题主要是因为在Android studio中默认不允许在线更新,修改方法如下:

  10. Android开发案例 – 在AbsListView中使用倒计时

    在App中, 有多种多样的倒计时需求, 比如: 在单View上, 使用倒计时, 如(如图-1) 在ListView(或者GridView)的ItemView上, 使用倒计时(如图-2) 图-1 图-2 ...