标签:遍历 迭代 元素 Collection boolean 集合
一、集合
1.1 简介
- 概念:用于存储一组(多个)数据的容器(集合)
- 数组与集合比较
A. 数组长度是固定的(String) 集合的长度是可变(StringBuffer)
B. 数组既可以存基本数据类型也可以存引用数据类型 集合只能存储引用数据类型的数据
- 分类
A. 单列集合Collection 每一个元素都是独立的单元
B. 双列集合Map 以键(key)值(value)对的形式来存储 以组为单元存储 丈夫==>妻子
1.2 Collection
1.2.1 简介
A.Collection 层次结构 中的根接口 ==>单列集合根接口
B.它提供更具体的子接口(如 Set 和 List)实现
C.子类
1.2.2 常用方法
方法名称 |
方法描述 |
boolean add(E e) |
向集合添加元素(末尾) |
void clear() |
移除此 collection 中的所有元素 |
boolean contains(Object o) |
如果此 collection 包含指定的元素 |
boolean isEmpty() |
如果此 collection 不包含元素,则返回 true |
Iterator iterator() |
返回在此 collection 的元素上进行迭代的迭代器 |
boolean remove(Object o) |
从此 collection 中移除指定元素 |
int size() |
返回此 collection 中的元素个数 |
Object[] toArray() |
将集合转换为数组 |
1.2.3 带all方法
方法名称 |
方法说明 |
方法返回值 |
col1集合 |
col2集合 |
boolean addAll(Collection<? extends E> c) |
小集合添加到大集合中 |
如果成功返回true 否则返回false |
会发生改变 |
不会改变 |
boolean containsAll(Collection<?> c) |
大集合是否完全包含小集合 |
大集合中元素完全包含小集合元素则返回true否则返回false |
不会改变 |
不会改变 |
boolean removeAll(Collection<?> c) |
大集合删除小集合元素 |
col1中的集合元素发生改变则返回true |
col1中去除两个集合交集部分 |
不会发生改变 |
boolean retainAll(Collection<?> c) |
获取两个集合交集部分 |
col1集合中元素发生改变则返回true |
col1两个集合的交集部分 |
不会发生改变 |
1.2.4 Collection集合遍历方式
1.2.4.1 第一种遍历方式
A.将集合转换为数组进行遍历 Object[] toArray()
7.2.4.2 第二种遍历方式
A.获取迭代器 Iterator<E> iterator() 将集合转换为迭代器
方法名称 |
方法描述 |
boolean hasNext() |
用于判断是否有下一个元素 |
E next() |
返回迭代的下一个元素 |
void remove() |
删除元素 |
迭代器遍历原理
- 将集合转换为迭代器
- 将指针指向-1的位置
- 将指针往后移动一位
- 获取当前指针指向的数据
1.2.4.3 第三种遍历方式
1.使用增强for循环遍历
2.语法:
for(集合或者数组的数据类型 变量名 :需要遍历的集合或者是数组) {
每次获取这个变量名就是集合或者数组中每一个元素
}
3.注意点:
增强for循环底层也是使用迭代器来进行遍历
1.3 List
1.3.1 简介
1.有序的 有索引 存与取元素的顺序是一致
2.列表通常允许重复的元素
3.允许多个 null 元素
4.总结:有序(有索引) 可重复 设置 null
5.实现类
1.3.2 常用方法
方法名称 |
方法描述 |
void add(int index, E element)增 |
在列表的指定位置插入指定元素 |
E get(int index)查 |
返回列表中指定位置的元素 |
E remove(int index)删 |
移除列表中指定位置的元素 |
E set(int index,E element)修 |
用指定元素替换列表中指定位置的元素 |
1.3.3 集合第四种遍历方式-普通for循环
1.3.4 List-ListIterator
方法名称 |
方法描述 |
ListIterator listIterator() |
返回此列表元素的列表迭代器 |
boolean hasPrevious() |
判断是否有上一个元素 |
E previous() |
获取集合中前一个元素 |
void add(E e) |
添加元素 |
1.3.5 ConcurrentModificationException -并发异常
1.产生问题原因:
使用迭代器遍历 使用list集合的方法来操作数据 使用list集合的方法操作数据的时候
迭代器并且不能够检测到操作了数据 所以就会产生并发异常
2.解决问题:
A.使用迭代器遍历 使用迭代器操作数据
B.使用集合方式遍历 使用集合操作数据
1.4 ArrayList
1.4.1 简介
A.ArrayList是List接口的实现类
B.ArrayList底层是以数组的方式进行存储
数组数据结构存储特点: 查询快 增删慢
C.此实现不是同步的 在多线程中是不安全
1.4.2 数据结构-数组结构
1.4.2 数据结构-栈结构
1.4.3 数据结构-队列
标签:遍历,
迭代,
元素,
Collection,
boolean,
集合
From: https://www.cnblogs.com/wyzel/p/16785606.html