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

+ Recent posts