集合的概念:集合和数组相似都是容器,而集合是储存数组的容器,长度可变,可储存不同类型的数组。
集合中的主要类型
1.集合.add(object obj)add方法需要的参数类型是object以便接受所有类。
2.集合中存储的是对象的引用(地址)。
把一个对象放进集合中,其实是把对象对应的位置编码放进了集合中。
import java.util.*;
/*
Collection定义了集合框架的共性功能。
1,添加
add(e);
addAll(collection);
2,删除
remove(e); al.remove("java02");
removeAll(collection); al1.removeAll(al2);al1中的元素减去al2中的元素。
clear(); al.clear();//清空集合。
3,判断。返回真假
contains(e); al.contains("java03")
isEmpty(); al.isEmpty()
4,获取
iterator();
size(); al.size()
5,获取交集。
retainAll(); al1.retainAll(al2);//去交集,al1中只会保留和al2中相同的元素。
6,集合变数组。
toArray();
迭代器(获取元素)
Iterator it = al.iterator();//获取迭代器,用于取出集合中的元素。
while(it.hasNext())
{
sop(it.next());
}
什么是迭代器呢?(取出动作不能用简单的一句代码表示,需要先进行判断,在取出,切取出的方式也不一样,所以把取出向上抽取封装成一个类inrerator,放入集合中是因为在集合中成为内部类,方便对集合内部的元素进行操作。对比取娃娃的游戏,箱子就是集合,里面有娃娃就是元素,里面的夹子就是这个取出类iterator)
另外for(Iterator it = al.iterator(); it.hasNext() ; )
{
sop(it.next());
}这段代码和上段代码功能相同,但比较好,因为完事以后it就消失了
Collection下的list
/*
Collection
|--List:元素是有序的,元素可以重复。因为该集合体系有索引。
|--ArrayList:底层的数据结构使用的是数组结构。特点:查询速度很快。但是增删稍慢。线程不同步。
|--LinkedList:底层使用的链表数据结构。特点:增删速度很快,查询稍慢。线程不同步。
|--Vector:底层是数组数据结构。线程同步。被ArrayList替代了。因为效率低。
|--Set:元素是无序,元素不可以重复。、
List:
特有方法。凡是可以操作角标的方法都是该体系特有的方法。
增
add(index,element);
addAll(index,Collection);
删
remove(index);
改
set(index,element);
查
get(index):
subList(from,to);
listIterator();
int indexOf(obj):获取指定元素的位置。
ListIterator listIterator();