日期:2014-05-20  浏览次数:20705 次

找出两上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方法比较