跳至主要內容

Collection


Collection

集合层次结构中的根接口。Collection表示一组对象,这些对象也称为Collection的元素。一些Collection允许有重复的元素,而另一些则不允许。一些Collection是有序的,而另一些则是无序的。

添加功能

方法声明功能描述
add()添加元素
addAll()添加一个集合的元素

删除功能

方法声明功能描述
remove()删除元素
removeAll()删除一个集合的元素
clear()清空集合

判断功能

方法声明功能描述
contains()判断集合是否包含指定的元素
containsAll()判断一个集合是否包含一个集合的元素
isEmpty()判断集合是否为空

获取功能

方法声明功能描述
size()获取集合的长度
retainAll()取两个集合的交集

其他功能

方法声明功能描述
toArray()把集合转成数组,可以实现集合的遍历
iterator()迭代器,集合的专用遍历方式

List

List接口是Collection接口的一个子接口,List集合的特性是:有序,可重复,元素有索引,List接口有三个实现类

  • ArrayList:底层数据结构是数组,查询快,增删慢,非线程安全,效率高,数据增长为原来的50%
  • Vector:底层数据结构是数组,查询快,增删慢,线程安全,效率低,数据增长为原来的一倍
  • LinkedList:底层数据结构是链表,查询慢,增删快,非线程安全,效率高

List接口新增加的方法

方法声明功能描述
set(int index, E element)修改指定位置处的元素
get(int index)获取指定位置的元素
indexOf(Object o)返回指定元素在集合中第一次出现的索引
lastIndexOf(Object o)返回指定元素在集合中最后一次出现的索引
subList(int fromIndex, int toIndex)返回fromIndex位置到toIndex位置的子集合

ArrayList

方法声明功能描述
ArrayList(Collection c)通过一个集合创建ArrayList对象
ArrayList(int initialCapacity)指定集合大小的构造方法

LinkedList

与ArrayList基于数组结构不同的是,LinkedList是基于链表的结构,因此具有链表特有的功能

方法声明功能描述
addFirst()在集合的第0个位置添加元素
addLast()在集合的最后位置添加元素
getFirst()获取集合的第0个元素
getLast()获取集合的最后一个元素
removeFirst()删除集合的第0个元素
removeLast()删除集合的最后一个元素

Vector

Set

Set接口是List接口的另一个子接口,Set集合的元素特点是无序,唯一的。

  • HashSet:底层数据结构是哈希表,由hashCode()和equals()保证元素唯一性
  • LinkedHashSet:底层是哈希表和链表,由链表保证元素有序,由哈希表保证元素唯一
  • TreeSet:底层数据结构是红黑树(自平衡的二叉树),由自然排序和比较器排序保证元素的排序;根据比较的返回值是否是0来证元素唯一性

HashSet

HashSet 是一个没有重复元素的集合。 它是由HashMap实现的(HashSet中大量调用了HashMap的方法,其内部封装了一个HashMap ),不保证元素的顺序,而且HashSet允许使用 null 元素。

LinkedHashSet

TreeSet

元素是无序(存入和取出的顺序不一定一致),元素不可以重复,因为该集合体系没有索引。Set集合的功能Collection是一致的,取出只有一种方式 就是迭代器

Map

方法声明功能描述
put(K key, V value)有添加和替换功能
putAll(Map m)添加一个Map的元素
clear()清空集合
remove(Object key)根据键删除一个元素
containsKey()判断集合是否包含指定的键
containsValue()判断集合是否包含指定的值
isEmpty()判断集合是否为空
get(Object key)根据键获取值
keySet()获取所有的键
values()获取所有的值
entrySet()获取所有的Entry
size()获取集合元素的个数

HashMap

LinkedHashMap

TreeMap

集合的遍历

集合的排序

Collections

Arrays