时间:2021-05-19
1.循环list中的所有元素然后删除重复
public class duplicatRemoval {public static List removeDuplicate(List list){for(int i=0;i<list. size()-1;i++){for(int j=list.size()-1;j>i;j--){if(list. get(j). equals(list.get(i))){list.remove(j);}}}return list;}}总结:
两层循环,外层循环从第一个元素向最后一个元素循环,内层循环是从最后一个元素向外层循环元素的当前元素循环。比较两个元素是否相等,如果相等,移除靠后的元素来进行去重。这种方法时间复杂度大于O(n),小于O(N²)
2.通过HashSet剔除重复元素
public class duplicatRemoval {public static List removeDuplicate(List list) {HashSet hashSet = new HashSet(list) ;list.clear();list.addAll(hashSet);return list;}}总结:
此种方式是利用了Set的特性:元素不可重复,其底层原理是先计算每个对象的hash值,再比较元素值是否相同,如果相同,则保留最新的。
3.删除ArrayList中重复元素,保持顺序
public class duplicatRemoval {public static void removeDuplicateWithOrder(List list) {Set set = new HashSet( );List newList = new ArrayList();for (Iterator iter = list. iterator(); iter. hasNext();) {0bject element= iter.next( );if (set. add( element) )newList.add( element);}list.clear();list.addAll(newList);System. out. println(”remove duplicate"+ list);}}4.把list里的对象遍历一遍,用list.contain(),如果不存在就放入到另外一个list集合中
public class duplicatRemoval {public static List removeDuplicate(List list){List listTemp = new ArrayList();for(int i=0;i<list. size();i++){if( !listTemp . contains(list.get(i))){listTemp. add(list.get(i));}return listTemp;}5.用JDK1.8 Stream中对List进行去重:list.stream().distinct();
public class duplicatRemoval {public static void main(String[] args) {List<Integer> list = new ArrayList<>( 1000000) ;for(inti=0;i<10;i++){list. add(1);System . out. println(list);List shortList = removeDuplicate(list);System . out . println( shortList);}@Suppres sWarnings( "rawtypes" )public static List removeDuplicate(List list){List newList = (List) list. stream(). distinct( ).collect(Collectors. toList());return newList ;首先获得此list的Stream,然后调用distinct()方法。Java8中提供流的方式对数据进行处理,非常快,底层用的是forkJoin框架,提供了并行处理,使得多个处理器同时处理流中的数据,所以耗时非常短。
到此这篇关于如何去除Java中List集合中的重复数据的文章就介绍到这了,更多相关Java List集合内容请搜索以前的文章或继续浏览下面的相关文章希望大家以后多多支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
java查找list中重复数据实例详解需求:查找一个List集合中所有重复的数据,重复的数据可能不止一堆,比如:aa,bb,aa,bb,cc,dd,aa这样的数
本文实例讲述了JS实现的数组去除重复数据算法。分享给大家供大家参考,具体如下:在JS中经常会遇到去除数组中重复数据的需求,在此介绍四种算法以实现JS数组去重的功
总的思路就是先找出表中重复数据中的一条数据,插入临时表中,删除所有的重复数据,然后再将临时表中的数据插入表中。所以重点是如何找出重复数据中的一条数据,有三种
在日常实际生活应用中,需要在大量数据中找到并删除重复数据,那么Excel中如何去掉重复数据?下面小编就为大家介绍excel去重复数据步骤,来看看吧 方法
在日常实际生活应用中,需要在大量数据中找到并删除重复数据,那么Excel中如何去掉重复数据?下面小编就为大家介绍excel去重复数据步骤,来看看吧!软件名称:E