Iterator에서 Stream로 간 이유
iterator, stream 둘다 반복적인 연산을 줄여주기 위해 만든 구분자이다. 최근에는 iterator보단 stream을 많이 사용한다. 써보면 안다. 코드량도 줄어들고 중간처리를 할 수 있는 연산들이 stream가 더 편하다는 걸.
예시)
List<String> stringList = Arrays.asList("월", "화", "수", "목", "금");
이 stringList 객체에 요일 요소들을 저장해두고 수
요일을 제거하는 작업을 각자 해보자.
iterator 예시
Iterator<String> iterator = stringList.iterator();
while (iterator.hasNext()) {
System.out.println("iterator.next(): "+iterator.next());
var day = iterator.next();
if ("수".equals(day)) {
iterator.remove(); // NoSuchElementException
}
System.out.println("day: "+ day);
}
System.out.println("-----------------------");
iterator = list.iterator();
while ((iterator.hasNext())) {
var day = iterator.next();
System.out.println("day: "+ day);
}
stream 예시
Stream<String> stringStream = stringList.stream();
stringStream.filter(s -> !"수".equals(s))
.forEach(System.out::println);
코드만 봐도 stream으로 구분자를 두고 한 것이 길지 않고 직관적이다. stream은 중간처리과정도 있어 행여나 iterator에 생기는 elementException도 생기지 않는다고 한다.
이래서 iterator는 잘 안보이고 stream으로 많이 쓰는 것인가 보다. stream 많이 사용하자!
Author And Source
이 문제에 관하여(Iterator에서 Stream로 간 이유), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@mooh2jj/Iterator에서-Stream로-간-이유저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)