publicstaticlistremoveduplicate {
listnewlist=(list ) list.stream ).distinct ).collect (collectors.to list ) );
返回新列表;
}
首先获取此列表的流,然后调用distinct ()。 Java8以提供流的方式处理数据,所以速度非常快。 基础使用了forkJoin框架,提供并行处理,使多个处理器同时处理流中的数据,因此时间非常短。
二. HashSet去除重复元素
publicstaticlistremoveduplicate {
hashset hashset=new hashset (列表;
list.clear (;
list.addall(hashset;
返回列表;
}
总结:
该方式利用了Set的特性。 元素不能重复。 其基本原理是计算每个对象的散列值,然后比较元素值是否相同,如果相同,则保留最新的。
三.删除ArrayList的重复要素,保持顺序
用HashSet消除重复元素
publicstaticlistremoveduplicate {
设置集=new hashset (;
列表new list=new ArrayList (;
for(iteratorIter=list.iterator ); iter.hasNext (; () )。
Object next=iter.next (;
if(set.add(next ) ) }
newlist.add(next );
}
}
list.clear (;
list.addall (新列表);
返回列表;
}
四.遍历列表,不存在tempList.contain ()、add
publicstaticlistremoveduplicate {
列表模板=new ArrayList (;
for(intI=0; i list.size (; I ) {
if (! templist.contains(list.get(I ) ) )
templist.add(list.get(I ) );
}
}
返回模板;
}
五、循环list所有要素,删除重复
一定要顺序重复,顺序混乱重复的东西是不可靠的
循环list中的所有元素并删除重复项
publicstaticlistremoveduplicate {
for(intI=0; i list.size (; I ) {
for(intj=list.size ) (- 1; j i; j---- ) {
if(list.get(I ).equals (list.get (j ) ) )
list.remove(list.get(I ) );
}
}
}
返回列表;
}
总结:
外侧循环从第一个元素循环到最后一个元素,而内侧循环从最后一个元素循环到外侧元素的当前元素循环。 比较两个要素是否相等,相等时删除后面的要素去除重量。 该方法时间复杂度大于o(n ),小于o(n )