介绍以下五种方法-使用不同的方法3358 www.Sina.com/Java http://www.Sina.com /中的3358 www.Sina.com/1.linked hashset重复arraylist
删除重复数据保留已添加数据的顺序Java示例使用链接的散列来删除arraylist中的重复数据。 在一个示例中,numbersList是一个包含整数的arraylist,其中有重复的数字,如1、3和5。 将列表添加到链接的散列中,并将内容返回到列表中。 结果arraylist中没有重复的整数。
publicstaticvoidmain (string [ ] args ) intlist )=[ 1,1,2,3,3,4,5,6,6,6,7,8 ]链路共享阵列system.out.println (listwithoutduplicates; }输出结果
[1、2、3、4、5、6、7和8 ]2.通过使用Java 8的新功能stream进行列表,从arraylist中删除重复项非常重要。 也可以使用java 8 stream api。 使用steam的distinct ()方法返回由在对象的去除方法中比较的不同数据组成的流。
使用Collectors.toList ()收集所有区域数据List。
一个Java程序,用于在不使用Set的情况下从Java的arraylist中删除重复项。
publicstaticvoidmain (字符串[ ] args ) intlist )=[ 1,1,2,3,3,4,5,6,6,6,7,8 ]监听器系统}输出结果
[1、2、3、4、5、6、7、8]
3 .利用hashset无法添加重复数据的特性,hashset无法保证添加顺序,因此仅保证顺序作为判断条件: privatestaticvoidremoveduplicate (Li字符串列表) hashset for(stringstr:list ) if ) set.add(str ) ) result.add (str ); } } list.clear (; list.addall(result; }
利用List的contains方法循环遍历、排序、仅添加一次数据、避免重复:专用列表列表列表列表列表result.contains(str ) ) result.add ) str; } } list.clear (; list.addall(result; )5.双for循环去重publicstaticvoidmain (string [ ] args ) intlist [ ]=[ 1,1,2,3,3,4,5,6,6,7,8 ] foor I list . I ) for(intj=I1; j List.size (; j ) if(list.get(I )==List.get(j ) j ) ) list.remove ) j; j----; }}}}