Collection集合
一些关于集合内部算法可以查阅这篇文章《容器类总结》。
(Abstract+)
Collection
增:
- 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
子类:ArrayList,LinkedList,Vector,Stack
增:
- 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
父类:List,Collection
改:
- ensureCapacity(int)
- trimToSize()
LinkedList
父类:List,Deque,Queue,Connection
特征:链式存储
Vector
父类:List,Collection
子类: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
父类:Vector,List,Collection
特征:线程安全;先入后出
增:
- push(E):E
删:
- pop():E
改:
- peek():E
- search(Object):int
- empty():boolean
(Abstract+)
Queue
父类:Collection
子类:Deque,ConcurrentLinkedQueue,BlockingQueue,LinkedList
增:
- offer(E):boolean
删:
- poll():E
- remove():E
查:
- peek():E
- element():E
ConcurrentLinkedQueue
父类:Queue,Collection
特征:链式存储;线程安全;先进先出
BlockingQueue
父类:Queue,Collection
子类:ArrayBlockingQueue,LinkedBlockingQueue,PriorityBlockingQueue,DelayQueue,
SynchronousQueue,TransferQueue,LinkedTransferQueue,BlockingDeque
增:
- 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
父类:BlockingQueue,Queue,Collection
特征:线程安全;先进先出;队满时阻塞进队线程;队空时阻塞出队线程;
LinkedBlockingQueue
父类:BlockingQueue,Queue,Collection
特征:链式存储;线程安全;先进先出;队满时阻塞进队线程;队空时阻塞出队线程;
PriorityBlockingQueue
父类:BlockingQueue,Queue,Collection
特征:线程安全;策略排序;队空时阻塞出队线程;
查:
- comparator():Comparator<? super E>
DelayQueue<E extends Delayed>
父类:BlockingQueue,Queue,Collection
特证:线程安全;策略排序;队空时或队头未到期时,阻塞出队线程;
SynchronousQueue
父类:BlockingQueue,Queue,Collection
特征:线程安全;先进后出;元素进队(put)后,阻塞进队线程,至元素出队为止;队空时阻塞出队线程;
TransferQueue
父类:BlockingQueue,Queue,Collection
增:
- transfer(E)
- tryTransfer(E):boolean
- tryTransfer(E, long, TimeUnit):boolean
查:
- getWaitingConsumerCount():int
- hasWaitingConsumer():boolean
LinkedTransferQueue
父类:TransferQueue,BlockingQueue,Queue,Collection
特征:线程安全;先进先出;元素进队(transfer)后,阻塞进队线程,至元素出队为止;队空时阻塞出队线程;
Deque
父类:Queue,Collection
子类:ArrayDeque,BlockingDeque,LinkedList
增:
- 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
父类:Deque,Queue,Collection
BlockingDeque
父类:Deque,BlockingQueue,Queue,Collection
增:
- 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
父类:BlockingDeque,BlockingQueue,Deque,Queue,Collection
(Abstract+)
Set
父类:Collection
子类:HashSet,TreeSet,SortedSet,NavigableSet,EnumSet
特征:代表不可重复序列
工具:
- Collections.unmodifiableSet(Set<? extends T>):Set<T>
只读模式包装 - Collections.synchronizedSet(Set<E>):Set<E>
线程安全包装
HashSet
父类:Set,Collection
特征:不可重复;策略排序(哈希表算法),一般代表无序
LinkedHashSet
父类:HashSet,Set,Collection
特征:不可重复;保留加入序
SortedSet
父类:Set,Collection
特征:代表有序
查:
- 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
子类: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
父类:NavigableSet,SortedSet,Set,Collection
特征:不可重复;策略排序(红黑树算法);不能有空元素
EnumSet<E extends Enum<E>>
父类:Set,Collection
特征:用于枚举类型
构建:
- 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集合的更多相关文章
- 浅谈Collection集合
俗话说:一个东西,一件事都离不开三句话:"是什么,为什么,怎么办" 集合是什么: 集合简单的说一个数组集合的高级体现,用来存储数据或对象的容器: 集合为什么存在: 集合只是体现了对 ...
- Collection集合的功能及总结
Collection集合是集合顶层接口,不能实例化 功能 1.添加功能 boolean add(Object obj):添加一个元素 boolean addAll(Collection c):添加一个 ...
- JAVA collection集合之 扑克牌游戏
主要内容:这里使用collection集合,模拟香港电影中大佬们玩的扑克牌游戏. 1.游戏规则:两个玩家每人手中发两张牌,进行比较.比较每个玩家手中牌最大的点数,大小由A-2,点数大者获胜.如果点数相 ...
- Collection集合List、Set
Collection集合,用来保存一组数据的数据结构. Collection是一个接口,定义了所有集合都应该包含的特征和行为 Collection派生出了两类集合 List和Set List接口:Li ...
- Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)
首先,我们先看一下Collection集合的基本结构: 1.Collection接口 Collection是最基本集合接口,它定义了一组允许重复的对象.Collection接口派生了两个子接口Set和 ...
- java.util.Map按照key值合并的value的Collection 集合中。
用java实现把多个map的内容合并的一个resultMap中 代码大致如下 /** * @author Shalf */ public class MapUtil { /** * 把partMa ...
- javad的Collection集合
集合框架:★★★★★,用于存储数据的容器. 特点: 1:对象封装数据,对象多了也需要存储.集合用于存储对象. 2:对象的个数确定可以使用数组,但是不确定怎么办?可以用集合.因为集合是可变长度的. 集合 ...
- Java基础知识强化之集合框架笔记13:Collection集合存储学生对象并遍历
1. Collection集合存储学生对象并遍历: 需求:存储自定义对象并遍历Student(name,age) 分析: (1)创建学生类 (2)创建集合对象 (3)创建学生对象 (4)把学生对象添加 ...
- Java基础知识强化之集合框架笔记12:Collection集合存储字符串并遍历
1. Collection集合存储字符串并遍历 分析: (1)创建集合对象 (2)创建字符串对象 (3)把字符串对象添加到集合中 (4)遍历集合 2. 代码示例: package cn.itcast ...
- Java基础知识强化之集合框架笔记09:Collection集合迭代器使用的问题探讨
1.Collection集合迭代器使用的问题探讨: (1)问题1:能用while循环写这个程序,我能不能用for循环呢? 可以使用for循环替代. (2)问题2:不要 ...
随机推荐
- 日期格式代码出现两次的错误 ORA-01810
错误的原因是使用了两次MM . 一.Oracle中使用to_date()时格式化日期需要注意格式码 如:select to_date('2005-01-01 11:11:21','yyyy-MM-dd ...
- 采用MiniProfiler监控EF与.NET MVC项目(Entity Framework 延伸系列1)
前言 Entity Framework 延伸系列目录 今天来说说EF与MVC项目的性能检测和监控 首先,先介绍一下今天我们使用的工具吧. MiniProfiler~ 这个东西的介绍如下: MVC Mi ...
- 有朋友问了数据库ID不连续,怎么获取上一篇和下一篇的文章?(不是所有情况都适用)
呃 (⊙o⊙)…,逆天好久没写SQL了,EF用的时间长了,SQL都不怎么熟悉了......[SQL水平比较菜,大牛勿喷] 方法很多种,说个最常见的处理 因为id是自增长的,所以一般情况下下一篇文章的I ...
- SQL Server-聚焦NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL性能分析(十八)
前言 本节我们来综合比较NOT IN VS NOT EXISTS VS LEFT JOIN...IS NULL的性能,简短的内容,深入的理解,Always to review the basics. ...
- C++中的引用
一,C++中引用的基础知识 1.引用的基本概念 1.所谓的引用其实就是对变量起“别名”.引用和变量对应得是相同的内存,修改引用的值,变量的值也会改变,和指针类似. 2.引用在定义的时候必须要初始化,初 ...
- “fixed+relative==absolute”——对BFC的再次思考
好久没写博客了,刚好今天跨年夜没约到什么妹子,在家宅着不如写点东西好了. 需求 昨天晚上,给公司年会做一个移动端的投票页面,遇到一个UI优化的问题: · 正文内容少于一屏时,投票提交按钮固定显示在页面 ...
- 【走过巨坑】android studio对于jni调用及运行闪退无法加载库的问题解决方案
相信很多小伙伴都在android开发中遇到调用jni的各种巨坑,因为我们不得不在很多地方用到第三方库so文件,然而第三方官方通常都只会给出ADT环境下的集成方式,而谷歌亲儿子android studi ...
- error C4430:missing type specifier 解决错误
错误 3 error C4430: missing type specifier - int assumed. Note: C++ does not support default-int ...
- iOS自定义model排序
在开发过程中,可能需要按照model的某种属性排序. 1.自定义model @interface Person : NSObject @property (nonatomic,copy) NSStri ...
- Linux基础介绍【第二篇】
远程连接Linux的原理 SHH远程连接介绍 当前,在几乎所有的互联网企业环境中,最常用的Linux提供远程连接服务的工具就是SSH软件,SSH分为SSH客户端和SSH服务端两部分.其中,SSH服务端 ...