스트림(Stream)
- 데이터를 다루는데 자주 사용되는 메소드들을 정의해놓음
- for문을 자주 사용하는 것을 방지해줄 수 있다
ex)
1)HashSet > ArrayList > Array
HashSet > ArrayList > Array
ArrayList<Integer> list = new ArrayList<>(set);
Collections.sort(list);
int[] answer = new int[list.size()];
for(int i =0; i<list.size(); i++){
answer[i] = list.get(i);
}
를 스트림을 통해 표현하면
return set.stream().sorted().mapToInt(Integer::intValue).toArray();
가 된다.
2) array > Set > list의 역순정렬
int [] arr = {1,2,3,4}
List<Integer> list = new ArrayList<>();
Set<Integer> set = new HashSet<>();
for(int i =0; i<arr.length; i++){
set.add(arr[i]);
}
Iterator<Integer> iter = set.iterator();
for(int i = 0; iter.hasNext(); i++){
list.add(iter.next());
}
list.sort(Comparator.reverseOrder());
을 스트림을 통해 표현하면
Arrays.stream(arr).boxed().distinct().sorted(Comparator.reverseOrder()).collect(Collectors.toList());
이렇게 간단하게 표현할 수 있다.
코딩테스트 문제를 풀 때 for문을 정말 많이 사용하는 나로선, Stream에 대한 공부는 필수일듯 하다.
'JAVA' 카테고리의 다른 글
JAVA(2022.07.21) - 알고리즘 문제 해설<순열검사> (0) | 2022.07.21 |
---|---|
JAVA(2022.07.20) - 알고리즘 문제해설<자릿수 더하기> (0) | 2022.07.20 |
2022.06.25 (0) | 2022.06.25 |
JAVA (0) | 2022.06.24 |
JAVA (0) | 2022.06.23 |