Collection
1 概述:
面向对象语言对事物的体现都是以对象的形式,所以为了方便对多个对象的操作,
Java就提供了集合类。
2 与数组的不同:
(1): 长度区别:
数组的长度是固定的而集合的长度是可变的;
(2): 存储数据类型的区别:
数组可以存储基本数据类型 , 也可以存储引用数据类型; 而集合
只能存储引用数据类型;
(3): 内容区别:
数组只能存储同种数据类型的元素 ,集合可以存储不同类型的元素。
3.集合继承体系图
4.Collection的功能:
接口,是一个单列的集合的父类;
6.List:元素有序,并且每一个元素都存在一个索引,元素可以重复。
List自己的迭代器:ListIterator():
遍历过程:
ListIterator listIterator=list.ListIterator();
while(listIterator.hasNext()){
Object next =listIterator.next();
System.out.println(next);}
(2)并发修改异常:
ConcurrentModificationException出现:
原因:
是我们的迭代依赖与集合 当我们往集合中添加好了元素之后,获取迭代器,
那么迭代器已经知道了集合的元素个数,这个时候你在遍历的时候又突然想给集合
里面加一个元素(用的是集合的add方法),那迭代器不同意就报错了。
解决方案:
1.我们用ListIterator迭代器遍历,用迭代器自带的add方法添加元素那就不会报错了
a:迭代器迭代元素,迭代器修改元素(ListIterator的特有功能add);
b:集合遍历元素,集合修改元素。
2.使用for循环遍历集合,添加元素,不会报错。
(3)List的子类:
7.Set:接口,元素唯一;