##Java的数据集合老大Collection与其子类List的迭代器

Colletion

//这里忽略泛型方法<E>
public static void main(String[] args){
    //用老大的方法创建一个空 的集合c
		Collection c = new ArrayList();
		//为空的数组c添加三个元素;
		c.add("李航");
		c.add("范奎");
		c.add("李湘");
	//创建一个集合c的Iterator 迭代器
	Iterator it  = c.iterator();
	//用 迭代器 遍历c 集合
		while(it.hasNext()){
 		//这里的对象类型是object 为了遍历String类型 需要向下转型
 		String s = (String)it.next();
 		System.out.println(s);
}

这是collection的自带迭代器 并且只有3种方法,其下的子类中均有次方法,如果需要更多的方法,就应该改使用 其子类中的具体的方法重写!!

1.boolean hasNext(); 判断迭代器中是否有下一个元素 有就返回true
2.e next();返回 迭代器的下一个元素
3.viod remove();从迭代器指向的Colletion的元素中移除迭代器返回的最后一个元素

List

List是Collection下的一个子类,即分支。它的特点是集合中的元素是有序排列的,或者说是每个元素都有其索引,可以通过索引实现查看,修改,添加,删除等功能。
List有其特有的迭代器!和遍历方法
1,size() get() 方法集合的原始for循环遍历
2,ListIterator lit = c.listIterator();
标注:此迭代器可以实现在遍历的时候 通过迭代器对集合进行添加元素的操作
Iterator迭代器则没有这个方法,如果如果用Iterator迭代器,通过集合添加元素则会报错:ConcurrentModificationException::当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常

//这里忽略泛型方法<E>
public static void main(String[] args){
    //用老大的方法创建一个空 的集合c
		Collection c = new ArrayList();
		//为空的数组c添加三个元素;
		c.add("李航");
		c.add("范奎");
		c.add("李湘");
	//创建一个集合c的ListIterator 迭代器
	LIstIterator lit = c.listIterator();
	while(lit.hasNext()){
	String s = (String)lit.next();
	if("范奎".equals(s)){
	lit.add("董卓");
	}
	}Systerm.out.println(c);
}	
结果是 [李航,范奎,董卓,李湘] 
添加的元素会在指定元素的后面而不是集合的后面

用size() get(int x)方法 做原始的for循环 用集合添加元素

for(int x = 0; x<c.size();x++){
 String s = (String)c.get(x);
 if("范奎".equals(s)){
	c.add("董卓");
	}
}Systerm.out.println(c);
}
结果是 [李航,范奎,李湘,董卓] 

List 针对与集合迭代器比Collection方法更多 ,但是都可以实现基本的遍历功能 如果只是想要遍历
Iterator 完全可以解决;任何的集合都可以使用这个遍历迭代器!所有的子类都继承了Collection的遍历方法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值