java8List에서 대상 속성의 무게 제거 실현
2260 단어 JAVA 공부
java8의stream흐름은 대상 집합을 완벽하게 풀 수 있습니다.
List list1 = new ArrayList();
UserCar userCar = new UserCar();
userCar.setId(1);
userCar.setCarNo("AA");
list1.add(userCar);
UserCar userCar1 = new UserCar();
userCar1.setId(2);
userCar1.setCarNo("AA");
list1.add(userCar1);
Person p1 = new Person(1, "11");
Person p2 = new Person(1, "22");
Person p3 = new Person(2, "11");
List persons = Arrays.asList(p1, p2, p3);
첫 번째:java8을 사용하지 않음
private List removeDupliByRecordId(List userCars) {
Set personSet = new TreeSet((o1, o2) -> o1.getRecordId().compareTo(o2.getRecordId()));
personSet.addAll(userCars);
return new ArrayList(personSet);
}
이것도 대다수 사람들이 가장 먼저 생각하는 것이다. TreeSet을 빌려 무게를 뺀다. 그 중에서 TreeSet의 구조 함수 중 하나가 정렬된 알고리즘을 받아들이는 동시에 이것도TreeSet의 무게 제거 전략에 사용된다.
public TreeSet(Comparator super E> comparator) {
this(new TreeMap<>(comparator));
}
두 번째: 시크한java8 쓰기
List unique = persons.stream().collect(
Collectors.collectingAndThen(
Collectors.toCollection(() -> new TreeSet<>(Comparator.comparing(Person::getName))), ArrayList::new)
);
unique.forEach(p -> System.out.println(p));
세 번째: 시크한java8 쓰기
List names = new ArrayList<>();// person id
List personList = persons.stream().filter(//
v -> {
boolean flag = !names.contains(v.getName());
names.add(v.getName());
return flag;
}
).collect(Collectors.toList());
작성자: tangerr 원문:https://blog.csdn.net/tangerr/article/details/90349986판권 성명: 본문은 작가의 오리지널 문장입니다. 옮겨 싣기 위해 블로그 링크를 첨부하세요!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JAVA 대상별 연습문제--애완동물 상점제목: 애완동물 상점을 실현하고 상점에 다양한 (사용자 수에 의해 확정된) 애완동물이 있다. 이러한 관계를 표시하고 애완동물의 키워드에 따라 해당하는 애완동물 정보를 찾을 수 있도록 요구한다.필요한 애완동물 정보는 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.