Java List 정렬, 그룹 구성 등
3169 단어 JAVA
List list = UserServer.getList();
무 거 운 것 을 제거 하고 중복 대상 (속성 마다 값 이 같 음) 을 제거 합 니 다. 대상 User 의 equals 와 hashCode 방법 을 먼저 다시 쓰 는 것 이 중요 합 니 다.
List distinctList = list.stream().distinct().collect(Collectors.toList());
정렬, id 리 셋 에 따라 정렬, 리 셋 하려 면: (a, b) -> b. getId () - a. getId () 로 변경 합 니 다.a 와 b 는 모두 변수 이름 (원 하 는 대로 이름 을 지 을 수 있 음) 입 니 다. 모두 list 의 대상 인 스 턴 스 입 니 다.
List sortList = list.stream().sorted((a, b) -> a.getId() - b.getId()).collect(Collectors.toList());
필터, 자신의 요구 에 따라 list 의 데 이 터 를 선별 합 니 다. 예 를 들 어 제 가 불합격 (60 점 이하) 한 사람 을 선별 하고 t 를 인 스 턴 스 로 합 니 다.
List filterList = list.stream().filter(t -> t.getScore() < 60).collect(Collectors.toList());
map, 대상 의 특정한 요 소 를 추출 합 니 다. 예 를 들 어 저 는 모든 사람의 name 을 취 했 습 니 다. list 의 유형 에 대응 하 는 것 을 주의 하 십시오. id 나 반 을 취 했 으 면 integer 형식 이 어야 합 니 다.
List mapList = list.stream().map(t -> t.getName()).collect(Collectors.toList());
모든 사람의 점 수 를 통계 하 는 것 과 주로 제 가 설정 한 점수 속성 은 double 유형 이기 때문에 mapToDouble 을 사용 합 니 다. int 유형 이 라면 mapToInt 를 사용 해 야 합 니 다.
double sum = list.stream().mapToDouble(t -> t.getScore()).sum();
int count = list.stream().mapToInt(t -> t.getId()).sum();
그룹 을 나 누고 필드 의 속성 에 따라 list 를 나 눕 니 다.
Map> map = list.stream().collect(Collectors.groupingBy(t -> t.getGrade()));
System.out.println(" "+map);
/* map , */
for(Map.Entry> entry : map.entrySet()){
System.out.println("key:"+entry.getKey());
System.out.println("value:"+entry.getValue());
}
다 중 조 를 나 누 려 면 먼저 학년 별로 조 를 나 눈 다음 에 반 별로 조 를 나눈다.
Map>> groupMap = list.stream().collect(Collectors.groupingBy(t -> t.getGrade(), Collectors.groupingBy(t -> t.getClasses())));
System.out.println(" :"+groupMap);
System.out.println(" list:"+groupMap.get(1).get(1));
다 중 그룹 은 일반적으로 다 중 그룹 을 나 눈 후에 모두 통 계 를 위해 서 이다. 예 를 들 어 각 학년, 각 반 의 총 점 수 를 통계 하 는 것 이다.
Map> sumMap = list.stream().collect(Collectors.groupingBy(t -> t.getGrade(), Collectors.groupingBy(t -> t.getClasses(), Collectors.summingDouble(t -> t.getScore()))));
System.out.println(sumMap);
System.out.println(" :"+sumMap.get(1).get(1));
stream 은 체인 식 입 니 다. 이런 기능 들 은 함께 사용 할 수 있 습 니 다. 예 를 들 어 각 학년 의 각 반 의 합격 인원 을 계산 할 수 있 습 니 다.
Map> integerMap = list.stream().filter(t -> t.getScore() >= 60).collect(Collectors.groupingBy(t -> t.getGrade(), Collectors.groupingBy(t -> t.getClasses(), Collectors.counting())));
System.out.println(" :"+integerMap.get(1).get(1));
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JAVA 객체 작성 및 제거 방법정적 공장 방법 정적 공장 방법의 장점 를 반환할 수 있습니다. 정적 공장 방법의 단점 류 공유되거나 보호된 구조기를 포함하지 않으면 이불류화할 수 없음 여러 개의 구조기 파라미터를 만났을 때 구축기를 고려해야 한다...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.