Java中Stream中的distinct()可以排除一些List里面的重复数据,包括List对象也是可以的,下面先来看一下Java Stream distinct()如何删除重复的List数据吧!
这个案例是使用Stream distinct()方法去除List基本类型里面的重复数据,方法如下:jshell> List list = List.of(1, 2, 3, 4, 3, 2, 1);
list ==> [1, 2, 3, 4, 3, 2, 1]
jshell> List distinctInts = list.stream().distinct().collect(Collectors.toList());
distinctInts ==> [1, 2, 3, 4]
如果List里面的是一个Java对象,想要去除List对象里面的重复数据,可以类似这样操作即可:package com.tpyyes.java;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
public class JavaStreamDistinct {
public static void main(String[] args) {
List dataList = new ArrayList<>();
dataList.add(new Data(10));
dataList.add(new Data(20));
dataList.add(new Data(10));
dataList.add(new Data(20));
System.out.println("Data List = "+dataList);
List uniqueDataList = dataList.stream().distinct().collect(Collectors.toList());
System.out.println("Unique Data List = "+uniqueDataList);
}
}
class Data {
private int id;
Data(int i) {
this.setId(i);
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
@Override
public String toString() {
return String.format("Data[%d]", this.id);
}
}
来源网站:太平洋学习网,转载请注明出处:http://www.tpyyes.com/a/java/1040.html