본문 바로가기

JAVA

JAVA(2002.07.06) - Stream

스트림(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