Collection集合

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

(Abstract+)

Collection

子类:List,Queue,Set

增:

  • 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

子类:LinkedTransferQueue

增:

  • 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

子类: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

父类: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

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

LinkedHashSet

父类:HashSet,Set,Collection

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

SortedSet

父类:Set,Collection

子类:TreeSet,NavigableSet

特征:代表有序

查:

  • 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

父类:SortedSet,Set,Collection

子类: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>

待续更新!

时间: 2024-11-05 10:23:54

Collection集合的相关文章

Java基础知识强化之集合框架笔记04:Collection集合的基本功能测试

1. Collection集合的基本功能测试: 1 package cn.itcast_01; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 6 /* 7 * 集合的由来: 8 * 我们学习的是面向对象语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储. 9 * 而要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,在我们目前所学过的知识

遍历Collection集合中的6种方法:

下面的代码演示了遍历Collection集合的6种方法,注意Collection集合的遍历远不止于增强for循环,和迭代器两种. 代码如下: 1 package com.qls.traverse; 2 3 import java.util.ArrayList; 4 import java.util.Arrays; 5 import java.util.Collections; 6 import java.util.Enumeration; 7 import java.util.Iterator;

Java基础知识强化之集合框架笔记05:Collection集合的遍历

1.Collection集合的遍历 Collection集合直接是不能遍历的,所以我们要间接方式才能遍历,我们知道数组Array方便实现变量,我们可以这样: 使用Object[]  toArray():把集合转化成数组,可以实现集合的遍历 代码实现: 1 package cn.itcast_01; 2 3 import java.util.ArrayList; 4 import java.util.Collection; 5 6 /* 7 * 集合的遍历.其实就是依次获取集合中的每一个元素. 8

【java读书笔记】——Collection集合之六大接口(Collection、Set、List、Map、Iterator和Comparable)

两个月之前准备软考时,简单的从理论上总结了最经常使用的数据结构和算法,比方:线性表,链表,图.在进行java开发时,jdk为我们提供了一系列对应的类来实现主要的数据结构.jdk所提供的容器API位于java.util包内.本文主要是通过简单的介绍Collection集合,向读者简单阐述各个类的基本定义以及其作用,为后面的学习做一下铺垫. 首先,我们先看一下Collection集合的基本结构: 1.Collection接口 Collection是最基本集合接口,它定义了一组同意反复的对象.Coll

Collection集合 和 Map

Collection |--List:元素是有序的,元素可以重复.因为该集合体系有索引.|--ArrayList:底层的数据结构使用的是数组结构.特点:查询速度很快.但是增删稍慢.线程不同步. List集合特有的迭代器.ListIterator是Iterator的子接口. List两种取出方式:1循环,2迭代 |--LinkedList:底层使用的链表数据结构.特点:增删速度很快,查询稍慢.线程不同步.|--Vector:底层是数组数据结构.线程同步.被ArrayList替代了.因为效率低. 在

Collection集合总结

一.集合的概述 1.集合的由来 Java是面向对象的语言,而面向对象语言对事物的描述是通过对象体现的,为了方便对多个对象进行操作,我们就必须把这多个对象进行存储.而我们要想存储多个对象,就不能是一个基本的变量,而应该是一个容器类型的变量,而在我们Java的基础知识里,我们有哪些容器类型的呢?答案是数组和StringBuffer两种,但是呢?StringBuffer的结果是一个字符串,不一定满足我们的要求,所以我们只能选择数组,这就是对象数组.而对象数组又不能适应变化的需求,因为数组的长度是固定的

JavaSE中Collection集合框架学习笔记(2)——拒绝重复内容的Set和支持队列操作的Queue

前言:俗话说“金三银四铜五”,不知道我要在这段时间找工作会不会很艰难.不管了,工作三年之后就当给自己放个暑假. 面试当中Collection(集合)是基础重点.我在网上看了几篇讲Collection的文章,大多都是以罗列记忆点的形式书写的,没有谈论实现细节和逻辑原理.作为个人笔记无可厚非,但是并不利于他人学习.希望能通过这种比较“费劲”的讲解,帮助我自己.也帮助读者们更好地学习Java.掌握Java. 无论你跟我一样需要应聘,还是说在校学生学习Java基础,都对入门和进一步启发学习有所帮助.(关

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

两个月之前准备软考时,简单的从理论上总结了最常用的数据结构和算法,比如:线性表,链表,图.在进行Java开发时,jdk为我们提供了一系列相应的类来实现基本的数据结构.jdk所提供的容器API位于java.util包内.本文主要是通过简单的介绍Collection集合,向读者简单阐述各个类的基本定义以及其作用,为后面的学习做一下铺垫. 首先,我们先看一下Collection集合的基本结构: 1.Collection接口 Collection是最基本集合接口,它定义了一组允许重复的对象.Collec

泛型限定的练习。获取Collection集合中的最大值

/** *    泛型限定的练习.★★★★★ 获取Collection集合中的最大值.(解决问题按照一下的要求做) 1 先定义了一个方法中明确具体元素类型的getMax_1. 2 由于getMax_1无法获取其他类型元素的最大值.提高扩展性,操作所有对象. 就升级为了Object .getMax_2 3 因为定义成Object,什么类型都可以接收,容易出现运行时的ClassCastException 所以使用泛型,对要操作的元素进行类型的限定. 思路: 1.获取元素最大值的方法,通常是拿一个对象

Collection集合 总结笔记

2:Set集合(理解)     (1)Set集合的特点         无序,唯一     (2)HashSet集合(掌握)         A:底层数据结构是哈希表(是一个元素为链表的数组)         B:哈希表底层依赖两个方法:hashCode()和equals()           执行顺序:             首先比较哈希值是否相同                 相同:继续执行equals()方法                     返回true:元素重复了,不添加