代码编织梦想

1.循环list中的所有元素然后删除重复

public class duplicatRemoval {

public static List removeDuplicate(List list){

for(int i=0;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

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 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 ;

c2810ec5f604649b887e47166c62f4b0.png

首先获得此list的Stream,然后调用distinct()方法。Java8中提供流的方式对数据进行处理,非常快,底层用的是forkJoin框架,提供了并行处理,使得多个处理器同时处理流中的数据,所以耗时非常短。

到此这篇关于如何去除Java中List集合中的重复数据的文章就介绍到这了,更多相关Java List集合内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/weixin_39593519/article/details/114053845

java list 去重(两种方式)-爱代码爱编程

方法一: 通过Iterator 的remove方法 public void testList() {    List<Integer> list=new ArrayList<Integer>();    list.add(1);  list.add(2);  list.add(4);  list.add(1);  list.ad

去除list集合中的重复值(四种好用的方法)-爱代码爱编程

最近项目中需要对list集合中的重复值进行处理,大部分是采用两种方法,一种是用遍历list集合判断后赋给另一个list集合,一种是用赋给set集合再返回给list集合。 但是赋给set集合后,由于set集合是无序的,原先的

list 如何去除重复数据 三个方法操作原理_傲宇苍穹的博客-爱代码爱编程_list去重原理

原理: 1.      把List集合中所有元素放到Set集合(Set集合不允许重复,重复会进行校验),然后再把Set放回List集中中 此方法不能保证元素顺序 解决办法: 使用ArrayList 建立二重循环 ArrayList获取原有List集合使用ArrayList第一层循环获取ArrayList依次获取每一个元素,使用ArrayList获取每一个

java中list集合去除重复数据的方法_keep、小猴的博客-爱代码爱编程

循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i <

java根据list中对象的属性找出list重复数据或去除list重复数据_weixin_34008805的博客-爱代码爱编程

在实际开发中,经常会遇到需要找出(删除)一个list中某些元素的属性相同的元素,或者两个list中某些元素的属性相等的元素,这种方法很多,这里整理列出一些: 废话不说,上代码,有注释掉的你们自己看 import java.util.ArrayList; import java.util.HashMap; import java.util.L

Java中List集合去除重复数据的六种方法-爱代码爱编程

1. 循环list中的所有元素然后删除重复 public static List removeDuplicate(List list) { for ( int i = 0 ; i < list.size() - 1 ; i ++ ) { for ( int j =

List去除重复数据的五种方式-爱代码爱编程

List去除重复数据的五种方式 以下介绍五种-不同的方法去除 Java 中ArrayList中的重复数据 1.使用LinkedHashSet删除arraylist中的重复数据 LinkedHashSet是在一个ArrayList删除重复数据的最佳方法。LinkedHashSet在内部完成两件事: 删除重复数据保持添加到其中的数据的顺序Java示例使用

java list 排重_Java中List集合去除重复数据-爱代码爱编程

利用for循环比较删除重复的数据 public static void main(String[] args) { List list = new ArrayList<>(); list.add("java"); list.add("php"); list.add("java"); list.add("java"); list

java去重复的集合_如何去除Java中List集合中的重复数据-爱代码爱编程

1.循环list中的所有元素然后删除重复 public class duplicatRemoval { public static List removeDuplicate(List list){ for(int i=0;i for(int j=list.size()-1;j>i;j--){ if(list. get(j). equal

java删除重复数据_Java 如何从列表中删除重复项?-爱代码爱编程

小编典典 如果该代码不起作用,则可能是你未equals(Object)在Customer该类上正确实现。 大概有一些钥匙(我们称之为customerId)可以唯一地标识一个客户。例如 class Customer { private String customerId; ... 的适当定义equals(Object)如下所示: publi

java可重复的集合_Java中List集合去除重复数据的方法汇总-爱代码爱编程

List集合概述 List集合是一个元素有序(每个元素都有对应的顺序索引,第一个元素索引为0)、且可重复的集合。 List集合常用方法 List是Collection接口的子接口,拥有Collection所有方法外,还有一些对索引操作的方法。 void add(int index, E element);:将元素element插入到List集合

java遍历list去重_Java中List集合去除重复数据的方法汇总-爱代码爱编程

List集合概述 List集合是一个元素有序(每个元素都有对应的顺序索引,第一个元素索引为0)、且可重复的集合。 List集合常用方法 List是Collection接口的子接口,拥有Collection所有方法外,还有一些对索引操作的方法。void add(int index, E element);:将元素element插入到List集合的i