5 回答
TA贡献1831条经验 获得超4个赞
只能说没有直接的API去删除重复项,但利用HashSet不能包含重复项,可以去除list的重复项。
public static void removeDuplicate(List list) {
HashSet h = new HashSet(list);
list.clear();
list.addAll(h);
System.out.println(list);
}
上面这个方法能去除List的重复项,但List原来的顺序会被打乱。如果不想在去除重复项的时候,还想保持原有的顺序,则可以用下面这种方式:
public static void removeDuplicateWithOrder(List 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(list);
}
参考这里
TA贡献1798条经验 获得超7个赞
不想要重复项,应该用Set吧,干嘛用List
补充:
拿自己写一个也不累,来来来:
List<String> origin = new ArrayList<>();
Set<String> handle = new HashSet<>();
//把origin里的所有元素放进handle去,因为handle是Set类,会自动去重
handle.addAll(al);
//把origin清空
origin.clear();
//再从handle里把去重之后的内容都放回origin里
origin.addAll(handle);
这下你就high至了
添加回答
举报