集合的概述
集合的由来
- 当需要在Java程序中记录单个数据内容时, 则声明一个变量
- 当需要在Java程序中记录多个类型相同的数据内容时,则声明一个一维数组
- 当需要在Java程序中记录多个类型不同的数据内容时,则创建一个对象
- 当需要在Java程序中记录多个类型相同的对象数据时,则创建一个对象数组
- 当需要在Java程序中记录多个类型不同的对象数据时,则准备一个集合
集合的框架结构
- Java中集合框架顶层框架是
java.util.Collection
集合和java.util.Map
集合 Collection
集合中存取元素的基本单位是:单个元素Map
集合中存取元素的基本单位是:单对元素
Collection集合
基本概念
java.util.Collection
接口是List接口
,Queue接口
以及Set接口
的父接口.
因此, java.util.Collection
接口里定义的方法既可用于操作List集合, 也可用于操作Queue集合和Set集合
常用方法
功能介绍 | 方法声明 |
---|
向集合中添加对象 | boolean add(E e) |
用于将参数指定集合c中的所有元素添加到当前集合中 | boolean addAll(Collection<? extends E> c) |
判断是否包含指定对象 | boolean contains(Object obj) |
判断是否包含参数指定的所有对象 | boolean containsAll(Collection<?> c) |
保留当前集合中存在且参数集合中存在的所有对象 | boolean retainAll(Collection<?> c) |
从集合中删除对象 | boolean remove(Object obj) |
从集合中删除参数指定的所有对象 | boolean removeAll(Collection<?> c) |
清空集合 | void clear() |
返回包含对象的个数 | int size() |
判断是否为空 | boolean isEmpty() |
判断是否相等 | boolean equals(Object o) |
获取当前集合的哈希玛值 | int hashCode() |
将集合转换为数组 | Object[] toArray() |
获取当前集合的迭代器 | Iterator iterator() |
Iterator接口
基本概念
java.util.Iterator
接口主要用于描述迭代器对象, 可以遍历Collection
集合中的所有元素java.util.Collection
接口继承Iterator
接口,因此所有实现Collection
接口的实现类都可以使用该迭代器对象
常用方法
功能介绍 | 方法声明 |
---|
判断集合中是否有可以迭代/访问的元素 | boolean hasNext() |
用于取出一个元素并指向下一个元素 | E next() |
用于删除访问到的最后一个元素 | void remove() |
for each循环
基本概念
- Java5推出了增强型for循环语句, 可以应用数组和集合的遍历
- 是经典迭代的“简化版”
语法格式
for(元素类型 变量名:数组/集合名称){
循环体
}
执行流程
不断地从数组/集合中取出一个元素赋值给变量名并执行循环体, 直到取完所有元素为止
List集合
基本概念
常用方法
功能介绍 | 方法声明 |
---|
向集合中指定位置添加元素 | void add(int index, E element) |
向集合中添加所有元素 | boolean addAll(int index,Collection<? extends E>) |
从集合中获取指定位置元素 | E get(int index) |
查找参数指定的对象 | int indexOf(Object o) |
反向查找参数指定的对象 | int lastIndexOf(Object o) |
修改指定位置的元素 | E set(int index, E element) |
删除指定位置的元素 | E remove(int index) |
用于获取子List | List subList(int fromindex, int toindex) |
Queue集合
基本概念
java.util.Queue
集合是Collection集合的子集合,也List集合属于平级关系- 该集合主要用于描述具有先进先出特征的数据结构,叫做队列(firts in first out FIFO)
- 该集合的主要实现类是
LinkedList
类,因为该类在增删方面比较有优势
常用方法
功能介绍 | 方法声明 |
---|
将一个对象添加至队尾,若添加成功则返回true | boolean offer(E e) |
从队首删除并返回一个元素 | E poll() |
返回队首的元素(但不删除) | E peek() |
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。