您的位置:首页 > 编程语言 > Java开发

java中删除list重复元素

2013-01-10 15:43 411 查看
方法一:循环元素删除

// 删除ArrayList中重复元素

public static void removeDuplicate(List list) {

for ( int i = 0 ; i < list.size() ; i ++ ) {

for ( int j = list.size() - 1 ; j > i; j -- ) {

if (list.get(j).equals(list.get(i))) {

list.remove(j);

}

}

}

System.out.println(list);

}

方法二:通过HashSet剔除

// 删除ArrayList中重复元素

public static void removeDuplicate(ArrayList list) {

HashSet h = new HashSet(list);

list.clear();

list.addAll(h);

System.out.println(list);

}

如果用Set ,倘若list里边的元素不是基本数据类型而是对象,

那么请覆写Object的boolean equals(Object obj) 和int hashCode()方法.

return new ArrayList(new HashSet(list)); 

方法三: 删除ArrayList中重复元素,保持顺序

// 删除ArrayList中重复元素,保持顺序 ,但会有些性能上的牺牲。

public static void removeDuplicateWithOrder(
ArrayList
list) {

Set set = new HashSet();

List newList = new ArrayList();

for (Iterator iter = list.iterator(); iter.hasNext();) {

Object element = iter.next();

if (set.add(element))

newList.add(element);

}

list.clear();

list.addAll(newList);

System.out.println( " remove duplicate " + list);

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: