Collection(接口)单列集合
Map(接口)双列集合
单列集合的子类集合:
List(接口):数据可重复
Set(接口):数据不可重复
但这些都是接口,以下为List接口的实现类:
ArrayList(实现类)
LinkedList(实现类)
以下为Set接口的实现类:
HashSet (实现类)
TreeSet(实现类)
双列集合的子类集合:
HashMsp(实现类)
Collection集合常用方法
boolean add(E e):添加元素
boolean remove(Object e):从集合移除指定元素
void clear():清空集合中的元素
boolean contains(Object e):判断集合中是否存在指定的元素
boolean isEmpty():判断集合是否为空
int size():返回集合的长度
Collection集合遍历:
Iterator(接口):迭代器,集合专用的遍历方式
Iterator<E> Iterator():返回此集合中元素的迭代器,通过集合的Iterator()方法得到
迭代器是通过集合的Iterator()方法得到的
Iterator常用方法:
E next():返回迭代中的下一个元素
boolean hasNext():如果迭代具有更多元素,则返回true
LIst集合特有方法:
void add(int index,E element):在集合中指定位置插入指定的元素
E remove(int index):删除指定索引处的元素,返回此元素
E set(int index,E element):修改指定元素处的元素,返回此元素
E get(int index):返回指定索引处的元素
关于并发修改异常:
ConcurrentModificationException
产生原因:迭代器遍历的过程中,通过集合对象修改了集合元素的长度,造成了迭代器获取元素判断中预期修改值和实际修改值不一样
ListIterator
列表迭代器
通过List集合的listiterator()方法获得,是List集合特有的迭代器
特点:可以从任一方向遍历列表的列表迭代器,可以在迭代期间修改列表,并获取列表中迭代器的当前位置
LIstIterator常用方法:
E previous():返回列表中的上一个元素
boolean hasPrevious():如果此列表在相反方向遍历时有更多元素,则返回true
void add(E e):将指定的元素插入列表
for增强循环:
实现Iterator接口的类允许成为其增强型for循环的目标,其内部原理是一个Iterator迭代器
格式:
for(元素数据类型 变量名: 数组或者Collection集合)
{
语句
}
List集合子类特点
ArrayList:底层数据结构是数组,查询快
LinkedList:底层数据结构是链表,增删快