JAVA Iterarot接口中remove()函数的使用

    菜鸟笔记,java新手。

    remove()函数删除的是迭代器所指向位置左边的对象,因为要删除某一对象,需要先用next()函数访问,访问之后迭代器的位置就更新了,因此调用remove()的时候删除的是左边的对象,为非hasnext()时的右边的对象。

class boy{
	private String name;
	@Override
	public String toString() {
		return "i am a boy";
	}
	public boy(String name){
		this.name=name;
	}
	public String get_name(){
		return name;
	}
}
public class testtt2 {
	public enum mycolor{red,blue,green};
	public static void main(String[] args) {
		Collection<boy> s=new HashSet<boy>();
		s.add(new boy("jack"));
		s.add(new boy("nio"));
		s.add(new boy("tom"));
		for(Iterator it=s.iterator();it.hasNext();){
			boy b=(boy)it.next(); //在做判断之后迭代器已经更新了,因此删除的是迭代器左边的元素。
			if(b.get_name()=="nio")
				it.remove();
		}
		for(Iterator it=s.iterator();it.hasNext();){
			boy b=(boy)it.next();
			System.out.println(b.get_name());//果然,被删除的是nio而不是其他的,因为HashSet是没有顺序的因此不清楚下一个会是谁。
		}
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值