遍历集合增删改所引发的问题


package com.test;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.concurrent.CopyOnWriteArrayList;

public class ThreadTest10
{

/**
* @param args
*/
public static void main(String[] args)
{
Collection users = /*new CopyOnWriteArrayList();*/new ArrayList();
users.add(new User("张三",28));
users.add(new User("李四",25));
users.add(new User("王五",31));
Iterator it = users.iterator();

while(it.hasNext()){
User user = (User)it.next();
if("张三".equals(user.getName())){
users.remove(user);
}else{
System.out.println(user);
}
}
}

}

class User implements Cloneable
{
private String name;
private int age;

public User(String name, int age)
{
this.name = name;
this.age = age;
}

public boolean equals(Object obj)
{
if (this == obj)
{
return true;
}
if (!(obj instanceof User))
{
return false;
}
User user = (User) obj;
if (this.name.equals(user.name) && this.age == user.age)
{
return true;
}
return false;
}

public int hashCode(){
return name.hashCode()+age;
}

public String toString(){
return "(name:'"+name+"',age:"+age+")";
}

@Override
protected Object clone()
{
Object object = null;
try{
object = super.clone();
}catch(CloneNotSupportedException e){

}
return object;
}

public String getName()
{
return name;
}

public void setName(String name)
{
this.name = name;
}

public int getAge()
{
return age;
}

public void setAge(int age)
{
this.age = age;
}
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值