stream 활용해 list 최소, 최대값 구하기
1) IntStream 으로 변환하는 경우
List<Integer> list = Arrays.asList(2,3,6,4,12);
Integer minValue = list.stream().mapToInt(x->x).min().orElseThrow(NoSuchElementException::new);
mapToInt()
stream 에서 Int 원시 스트림으로 변환
min()
최솟값을 구하는데, 결과값을 Optional로 반환한다.
orElseThrow()
결과 값이 없는경우 괄호안의 예외를 throw 한다.
2. IntStream 으로 변환하지 않는 경우
List<Intger> list = Arrays.asList(2,3,7,1,5,4);
Integer maxValue = list.stream().max(Comparator.comparing(x->x)).orElseThrow(~~);
Comparator.comparing(x->x)
두 매개 변수 객체를 비교해주는 것입니다.
자기 자신의 상태가 어떻든 상관없이 피라미터로 들어오는 두 객체를 비교하는 것
* comparable : 자기 자신과 매개변수 객체를 비교하는 것
'JAVA' 카테고리의 다른 글
JAVA Enum 에러 (0) | 2023.04.09 |
---|---|
2차원 배열 정렬, 문자열 배열 정렬 (1) | 2022.10.03 |
Queue와 BFS (1) | 2022.09.30 |
정렬과 lambda (0) | 2022.09.29 |
PriorityQueue ( 우선순위큐 ) (0) | 2022.09.27 |