| 
 
| 集合类的由来: 对象用于封装特有数据,对象多了需要存储,如果对象的个数不确定,就使用集合容器进行存储。
 集合特点:
 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
 
 
 
 | 
 |