集合类的由来:
对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储。
集合特点:
1,用于存储对象的容器。
2,集合的长度是可变的。
3,集合中不可以存储基本数据类型值。
集合容器因为内部的数据结构不同,有多种具体容器。
不断的向上抽取,就形成了集合框架。
框架的顶层Collection接口:
Collection
|--List:有序(存入和取出的顺序一致),元素都有索引(角标),元素可以重复。
|--Set:元素不能重复,无序。
List:
|--Vector:内部是数组数据结构,是同步的。增删,查询都很慢!
|--ArrayList:内部是数组数据结构,是不同步的。替代了Vector。查询的速度快。
|--LinkedList:内部是链表数据结构,是不同步的。增删元素的速度很快。
Collection的常见方法:
Collection coll = new ArrayList();
System.out.println(coll);;// [abc1, abc2, abc3]
1,添加。
boolean add(Object obj):
boolean addAll(Collection coll):
2,删除。
boolean remove(object obj); 会改变集合的长度
boolean removeAll(Collection coll);将两个集合中的相同元素从调用removeAll的集合中删除。
boolean containsAll(Colllection coll);取交集,保留和指定的集合相同的元素,而删除不同的元素。
void clear(); 清空集合
3,判断:
boolean contains(object obj):
boolean isEmpty():判断集合中是否有元素。
4,获取:
int size():
Iterator iterator():取出元素的方式:迭代器。
该对象必须依赖于具体容器,因为每一个容器的数据结构都不同。
所以该迭代器对象是在容器中进行内部实现的。
对于使用容器者而言,具体的实现不重要,只要通过容器获取到该实现的迭代器的对象即可,
也就是iterator方法。
Iterator接口就是对所有的Collection容器进行元素取出的公共接口。
其实就是抓娃娃游戏机中的夹子!
5,其他:
boolean retainAll(Collection coll);取交集。
Object[] toArray():将集合转成数组。
-------------------------------
List:特有的常见方法:有一个共性特点就是都可以操作角标。
List al=new ArrayList();
System.out.println("list:"+list);// list:[abc1, abc2, abc3]
1,添加
void add(index,element);index可以省略,直接在最后面添加
void add(index,collection);index可以省略,直接在最后面添加
2,删除;
Object remove(index); 返回对象,记录着被删除的元素
3,修改:
Object set(index,element);返回对象,记录着被修改的元素
4,获取:
Object get(index); 通过 角标获取元素
int indexOf(object);通过indexof获取对象的位置
int lastIndexOf(object);
List subList(from,to);获取子列表(列表中两个位置之间的数):返回List。包括头,不包括尾
List sub=al.subList(1,3)返回角标1和2的元素组成的list
list集合是可以完成对元素的增删改查。
获取所有元素:
for(int x=0;x
{
al.get(x)
}
第二种方式:
Iterator it=a1.iterator();//构建 迭代器对象,只有删除功能。
while(it.hasNext())
{
it.next();
}
在迭代器过程中,不要使用集合操作元素,容易出现异常。
这时就需要迭代器可以对迭代器的对象进行操作,但是由于Iterator迭代器只有 remove功能,所以建议使用其子接口ListIterator,它具备删除 remove 添加 add 修改 set 等功能。
ListIterator列表迭代器:是List集合特有的迭代器,是Iterator的子接口。可以对集合列表进行各种操作。此功能是List特有
ListIterator it=a1.ListIterator();
while(it.hasNext())//正向遍历
{
it.next();
it.set();//修改
}
逆向遍历
it.hasPrevious
|
|