list集合去除重复数据

以前在学java时,老是在用list集合而忽视了set集合,只知道set是去重用的,但实际上不知怎么用,今天终于解决这个问题了。

以前我借用list,自己来去重的,比较麻烦,代码如下:

List list1 = new ArrayList();
list1.add("a");
list1.add("b");
list1.add("c");
list1.add("d");

List list2 = new ArrayList();
list2.add("d");
list2.add("e");
list2.add("c");
list2.add("d2");

List list3 = new ArrayList();
list3 = list1;

for (int i = 0; i < list2.size(); i++) {
if(list3.contains(list2.get(i))){
continue;
}
list3.add(list2.get(i));
}
for (Object object : list3) {
System.out.print(object+"\t");
}

改善后代码:

List list1 = new ArrayList();
list1.add("a");
list1.add("b");
list1.add("c");
list1.add("d");

List list2 = new ArrayList();
list2.add("d");
list2.add("e");
list2.add("c");
list2.add("d2");

list1.addAll(list2);
//利用set去重
Set set = new HashSet();
set.addAll(list1);
// 将去重后的元素赋给list3集合
List list3 = new ArrayList();
list3.addAll(set);
// 循环输出即可
for (Object object : list3) {
System.out.print(object+"\t");
}

 

posted @ 2013-05-30 00:16  狂奔的程序猿  阅读(548)  评论(0)    收藏  举报