一
1.概念:
集合类是用于存储对象的容器,该容器长度是可变的
2.与数组的区别:
1.集合长度可变,数组长度不可变
2.集合只能存储引用类型数据, 数组可以存储基本数据类型
3.集合中存在的对象可以是任意类型,数组值能存一种
3.集合中的常用方法
1添加方法:
boolean add(object e):一次添加一个元素。
boolean addAll(Collection):将一个参数容器中的元素添加到当前容器中。
2删除方法:
boolean remove(object):删除指定对象。
booleanremoveAll(Collection):删除指定Collection中和本Collection中相同的元素。
3.判断方法:
boolean contains(object):是否包含指定元素。
boolean contains(Collection):是否包含指定容器中的元素。
boolean isEmpty():是否有元素。
4.获取元素个数:
int size():获取元素有几个。
5取交集:
boolean retainAll(Collection):保留和指定Collection集合中相同的元素不同的元素会被删除。
6将集合转成数组:
Object[] toArray()
7.取出元素的方法:
Iterator iterator() 迭代器
二:迭代器
作用:
迭代器是取出集合元素的方式的一个对象,通过iterator()方法来完成。该方法返回一个iterator类型对象。
如:创建集合
Collection coll=new ArrayList();
coll.add(“abc1”);
coll.add(“abc2”);
coll.add(“abc3”);
获取该集合的迭代器对象
Iterator it=coll.iterator();
while(it.hashNext()){
System.out.println(it.next());
}
三:Collection重要的子接口
1. List和set的特点:
1.List:
- 有序 存储时顺序和取出时保持一致()
- 该集合中的元素都有索引,所以可通过索引来访问元素
- 可以存储重复元素
2..Set:
- 无序 (集合存入元素的顺序和取出元素的顺序不一致)
- 不包含重复元素。
2.List的方法
因为List接口的特点是对元素有索引标示,所以它的特有方法应该都是围绕索引定义的。
1 添加:
void add(index ,element); 根据索引添加元素
boolean addAll(index,collection);
2删除:
object remove(index):获取并删除。
3获取:
object get(index):获取元素
int indexOf(object); 获取元素索引:
int lastIndexOf(object);获取元素索引:
List subList(fromIndex,toIndex):获取列表中的一部分,包含fromIndex位置,不包含toIndex位置
4修改:
object set(index,element):替换指定位置的元素,并返回被替换掉的元素
3.实现List接口的子类:
1.Vector:
底层是数据结构的da,可变长度数据。原理:一旦原数组长度不够,会创建新数组,将原数组的元素复制到新数组中,并将新元素添加到新数组中。
2.ArrayList:
底层是数组结构,也是支持长度可变数组的。是不同步的,替代了Vector,因为效率高查询效率高,但增删效率低。
3.LinkedList:
底层是链接列表结构,简称链表结构。这个中结构的好处,对元素的增删非常效率很高。好处是删除和增加效率高,但查询很慢,因为它的查询要一个一个的往下查询。
4 LinkeList和ArrayList的区别:
ArrayList:查询效率高,但增删效率低。
LinkedList:好处是删除和增加效率高,但查询很慢,因为它的查询要一个一个的往下查询。