首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

如何把两个List内容加到一个List

2011-12-15 
怎么把两个List内容加到一个List比如:List1和List2里面每条记录都是form类型。form里面包含userId,userName

怎么把两个List内容加到一个List
比如:
List1和List2里面每条记录都是form类型。
form里面包含userId,userName三个元素。
现在将上面的List1,List2里面的记录都追到第三个新的list3中,要求list3中不包含数据相同的记录。也就是说list1和list2中都有userId= "1 ",userName= "aa "的form(这两个form只是userId,userName值相等,内存地址不同),追加到list3后,list3中只能有一条(userId= "1 ",userName= "aa ")的form。
请给出最简便的做法。

[解决办法]
list3 = list1;
list3.removeAll(list2);
list3.addAll(list2);
[解决办法]
我又转回来了,我上面的方法确实只有相同对象才能去掉。不过,稍作改动,重载Form的equals方法就可以实现。

public boolean equals(Object obj){
……
Form f = (Form)obj;
if(f.getUserId().equals(this.getUserId()) &&
f.getUserName().equals(this.getUserName()))
return true;
else
return false;

}
[解决办法]
重载equals()、hashCode()方法是可行的,不过容易出现扩展问题。
个人觉得实现Comparator接口比较好。纯属个人意见^_^。
[解决办法]
不能自己更改就继承再重载
[解决办法]
如果不能改form,那就自己再写一个类包装form类吧,包装类重载equals和hashCode方法。

热点排行