package com.yang.ex;
//就把取出方式定义在集合的内部
//这样取出方式就可以直接访问集合内容的元素。
//那么取出方式就被定义成了内部类
//而每一个容器的数据结构不同,所以取出的动作细节也不一样。
//但是都有共性内容,判断和取出,那么可以将写共性抽取。
//这个规则就是Iterator通过一个Iteratro()方法取出
import java.util.ArrayList;
import java.util.Iterator;
//迭代器就是集合的取出元素的方式
import java.util.List;
public class Exer4 {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList alArrayList=new ArrayList();
alArrayList.add("01");
alArrayList.add("02");
alArrayList.add("03");
alArrayList.add("04");
Iterator iterator=alArrayList.iterator();//获取迭代器,用于取出集合中的元素
System.out.println(iterator.hasNext());
System.out.println(iterator.next());
}
}
/*
List集合特有的迭代器,ListIterator是Iterator的子接口
在迭代时,不可以通过集合对象的方法操作集合中的元素
因为会发生异常
所以在迭代器时,只能用迭代器的放过操作元素,可是Iterator方法是有限的
只能对元素进行判断,取出,删除的操作
如果想要其他的操作,如添加 修改等就要使用其子接口,ListIterator
该接口智能通过List的集合的ListIterator进行迭代
*/
/*
* Collection
* ---list:元素师有序的 ,元素师可以重复的,因为该集合体系有索引
*
* ----ArrayList:底层的数据结构使用的是数组结构 容量为10
* 特点:查询速度最快,但是增删较慢
* ----LinkedList:底层使用的是链表数据结构
* 特点:查询较慢,但是增删的速度很快
* -----Vector:底层是数组数据结构,线程同步。
* 基本被ArrayList替代了
*
*
* ---Set:元素师无序的,元素不可以重复。
* list 也是一个抽取出来的接口
* List
* 特有的方法,凡事可以操作角标的方法都是该体系特有的方法
* 增:
* add(index,element)
* addAll(index Collection);
* 删
* remove(index)
*改
*set(index,element)
*查
*get(index)
*subList(from,to)
*listInterator()
*
*
* */
//添加元素
ArrayList alArrayList=new ArrayList();
alArrayList.add("01");
alArrayList.add("02");
alArrayList.add("03");
alArrayList.add("04");
//在指定位置添加元素
alArrayList.add(1,"01");
System.out.println(alArrayList);
//删除指定位置的元素
alArrayList.remove(1);
//修改元素
alArrayList.set(1,"00?");
//通过角标获取元素
System.out.println("get"+alArrayList.get(3));
//获取所有元素
for(int x=0;x<alArrayList.size;x++){
System.out.println(alArrayList.get(x));
}
//通过indexOfd获取对象的位置
System.out.println(alArrayList.indexOf("02"));
List subEs=alArrayList.subList(1, 3);//包含1不包含3
System.out.println(subEs);
//演示列表迭代器
ArrayList alArrayList1=new ArrayList();
alArrayList.add("01");
alArrayList.add("02");
alArrayList.add("03");
alArrayList.add("04");
//在迭代过程中,准备添加或者删除元素
Iterator iterator=alArrayList.iterator();
while(iterator.hasNest()){
Object object=iterator.next();
if (object.equals("02")) {
alArrayList.add("05");
System.out.println(iterator);
System.out.println(object);
}
}
}
}