git 링크
- https://github.com/oshnew/study-modern-java/blob/master/src/main/java/stream/StreamSorted.java
import lombok.AllArgsConstructor;
import lombok.Data;
import java.util.Arrays;
import java.util.Comparator;
import java.util.List;
import java.util.stream.Collectors;
/**
* 내부 개발자 교육을 위한 간단한 java Stream 샘플 소스
* - 정렬
*
* @author
*/
public class StreamSorted {
public static void main(String[] args) {
//테스트 데이터 셋팅
List<StatVO> statList = Arrays.asList(new StatVO("a", 3), new StatVO("b_a", 2), new StatVO("b_c", 1), new StatVO("d", 7));
System.out.println("=== cnt 오름차순 정렬");
statList.stream().sorted(Comparator.comparing(StatVO::getCnt)).forEach(System.out::println);
System.out.println("\n\n");
System.out.println("=== cnt 내림차순 정렬");
statList.stream().sorted(Comparator.comparing(StatVO::getCnt).reversed()).forEach(System.out::println);
System.out.println("\n\n");
System.out.println("=== stat name 오름차순 후에 cnt 내림차순정렬"); //다수 필드 정렬
statList.stream().sorted(Comparator.comparing(StatVO::getStat).thenComparing(StatVO::getCnt).reversed()).forEach(System.out::println);
System.out.println("\n\n");
List<StatVO> descList = statList.stream().sorted(Comparator.comparing(StatVO::getCnt)).collect(Collectors.toList());
System.out.println("=== 오름차순 정렬하여 collect한 리스트");
descList.stream().forEach(System.out::println);
}
@Data
@AllArgsConstructor
public static class StatVO {
private String stat;
private int cnt;
}
}
'JAVA > Java 일반' 카테고리의 다른 글
간단한 월 달력 생성 프로그램 (0) | 2022.05.10 |
---|---|
Java의 java.time.LocalDateTime 관련 몇가지 사용 예 (0) | 2022.04.15 |
대용량 처리시 부하분산을 위한 데이터 분할 처리(간략) (0) | 2021.12.10 |
구글 재무보고서 중에서 '수익'보고서를 다운로드하는 샘플 프로그램(download google earnings report) (1) | 2021.11.26 |
구글 수익 레포트 CSV파일 파싱 프로그램(Parsing Google earnings report csv file) (0) | 2021.11.18 |