原文链接:Java 8 stream distinct by multiple fields - HowToDoInJava
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ConcurrentHashMap;
import java.util.function.Function;
import java.util.function.Predicate;
import java.util.stream.Collectors;
public class DistinctByMultiFields {
public static void main(String[] args) {
List<Record> recordsList = getRecords();
List<Record> list = recordsList.stream()
.filter(distinctByKeys(Record::getId, Record::getName))
.collect(Collectors.toList());
System.out.println(list);
}
private static <T> Predicate<T> distinctByKeys(Function<? s