java 集合(2) 遍历collection集合方法 iterator / 加强型for循环

1.iterator 遍历方法

代码如下:

		Collection c = new ArrayList<Iplong>();
		c.add(new Iplong("li","ji"));
		c.add(new Iplong("li","jia"));
		java.util.Iterator it = c.iterator();//为了创造出一个统一的访问集合类的东西,java.util.Iterator 担当了这个使命。
		//Iterator就是统一的用来遍历collection里元素的方法。可以理解成指针/游标
		while(it.hasNext()){
			Iplong ip = (Iplong) it.next();//next()返回的是object类型,需要转化,这个强转是正常写法
			System.out.println(ip.firstName+"\t"+ip.lastName);
		}


其中这两句做以解释,Collection c = new ArrayList<Iplong>();    

java.util.Iterator it = c.iterator();

这两句里都有多态存在,其中第二行代码用以下图解释


2.iterator 的remove方法

Collection c = new ArrayList<Iplong>();
		c.add(new Iplong("li","ji"));
		c.add(new Iplong("li","jia"));
		c.add(new Iplong("lia","jia"));
		c.add(new Iplong("lig","jia"));
		java.util.Iterator it = c.iterator();//为了创造出一个统一的访问集合类的东西,java.util.Iterator 担当了这个使命。
		//Iterator就是统一的用来遍历collection里元素的方法。可以理解成指针/游标
		while(it.hasNext()){
			Iplong ip = (Iplong) it.next();//next()返回的是object类型,需要转化,这个强转是正常写法
			//if(ip.firstName.equals("li"))
			//	it.remove();
		}
		System.out.println(c.toString());
	}
以上代码返回结果:

[test.java.Iplong@d7d, test.java.Iplong@d7d, test.java.Iplong@1a284, test.java.Iplong@1a28a]
如果把注释的两句打开,结果:

[test.java.Iplong@1a284, test.java.Iplong@1a28a]
可见iterator的remove方法起到了作用。注意在这里it.remove()不能换成c.remove()。

3.加强型for循环

		Collection c = new ArrayList<Iplong>();
		c.add(new Iplong("li","ji"));
		c.add(new Iplong("li","jia"));
		c.add(new Iplong("lia","jia"));
		c.add(new Iplong("lig","jia"));
		for(Object collectElem : c)
			System.out.println(collectElem.toString());
这种加强型好处是方便,只有这一个好处

缺点:不能像上面iterator一样remove一个元素。不能像数组一样用下标访问元素。只能傻瓜全取。


完成任务




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值