Table of Contents
JAVA Stream
JAVA8 버전부터 Stream 이 추가되었습니다.
JDK8 이전
for-each
를 이용해 List 데이타를 조작하였습니다.
public class StreamTest {
@Test
public void testBeforeJDK8() {
// 테스트 데이타 생성
ArrayList<String> list = new ArrayList<>(Arrays.asList("Apple", "Banana", "Melon", "Grape", "Strawberry"));
// JAVA8 이전
int i = 0;
for (String item : list) {
list.set(i++, item.toUpperCase());
}
assertEquals("APPLE", list.get(0));
}
}
JDK8 이후
stream()
를 이용해 List 데이타를 조작할 수 있습니다.
public class StreamTest {
@Test
public void testJDK8() {
// 테스트 데이타 생성
ArrayList<String> list = new ArrayList<>(Arrays.asList("Apple", "Banana", "Melon", "Grape", "Strawberry"));
// JAVA8 이후(lambda 사용)
// List<String> results = list.stream().map(s->s.toUpperCase()).collect(Collectors.toList());
// JAVA8 이후(함수 참조 사용)
List<String> results = list.stream().map(String::toUpperCase).collect(Collectors.toList());
assertEquals("APPLE", results.get(0));
}
}