找出两上List中不同的对象
如:list1 有三个User对象
User1. id = 1
User2. id = 2
User3. id = 3
list2 有2个User对象
User1. id = 1
User2. id = 2
我怎样找出User3这个对象
------解决方案--------------------
User类重写equals()hashCode()方法,
遍历list1的每一个对像,判断哪一个list2中不包含的.
boolean contains(Object o)
如果列表包含指定的元素,则返回 true。
------解决方案--------------------不t重写,就两重循环吧
------解决方案--------------------id=3
------解决方案--------------------重新构造一个HashSet,把两个list中数据都放进去,这个HashSet就是不重复的
然后重新放回list中
------解决方案--------------------一个FOR循环,it.next(),就可以搞顶拉
------解决方案--------------------看了一下list的contains方法,只需要重写equals()方法就行了
public class User
{
public boolean equals(Object o)
{
if(!(o isintanceof User))
{
return false;
}
if(this==o)
{
return true;
}
User u = (User)o;
if(this.getId()==u.getId())//假设为id基本类型
{
return true;
}
reutrn false;
}
}
List list = new ArrayList();//list1中在list2中没有的对像
Iterator it1 = list1.iterator();
while(it1.hasNext())
{
Object o = it1.next();
if(! list2.contains(o) )//如果list2中不存这个对像
{
list.add(0);//把list2中不包含的存放到list中
//list1.reomve(o);//根据需要是否移除它
}
}
------解决方案--------------------循环一个LIST 用另一个list的contains方法比较