1. 루핑(Looping)
- 루핑은 요소 전체를 반복하는 것을 말합니다.
- 루핑 메소드에는 peek()와 forEach()가 있습니다.
- 두 메소드는 기능적으로는 동일하지만, peek()는 중간 처리 메소드이고, forEach()는 최종 처리 메소드 입니다.
2. peek()
- peek()는 중간 처리 메소드 입니다. 따라서 최종 처리 메소드가 호출되어야 동작합니다.
- 전체 요소를 루핑 하면서 추가적인 작업을 위해서 사용합니다.
- 필터링 후 남은 데이터 확인, 집계 시 사용된 데이터 출력 등과 같은 작업으로 쉽게 생각하면 미리 보기? 확인용? 같이 사용됩니다.
int[] intArr = {1,2,3,4,5,6,7,8,9};
int sum = Arrays.stream(intArr).peek(i -> System.out.print(i + " ")).sum();
System.out.println("sum: " + sum);
/*
[출력]
1 2 3 4 5 6 7 8 9 sum: 45
*/
3. forEach()
- forEach()는 최종 처리 메소드 입니다.
- 파이프라인 마지막에 루핑 하면서 요소를 하나씩 처리합니다.
int[]
int[] intArr = {1,2,3,4,5,6,7,8,9};
Arrays.stream(intArr).forEach(System.out::println);
List<String>
List<String> stringList = Arrays.asList(
"A",
"B",
"C",
"D",
"E",
"F"
);
stringList.stream().forEach(System.out::println);
List<DTO(VO)>
static class People {
private String name;
private int age;
People(String name, int age) {
this.name = name;
this.age = age;
}
public int getAge() {
return age;
}
public String getName() {
return name;
}
}
List<People> peopleList = Arrays.asList(
new People("김현수", 1),
new People("나영민", 2),
new People("임호연", 3),
new People("신종엽", 4),
new People("김기혁", 5),
new People("안종호", 6),
new People("하연수", 7),
new People("장영호", 8)
);
peopleList.stream().forEach(p -> System.out.println(p.getName() + " : " + p.getAge()));
'Backend > Java' 카테고리의 다른 글
[Java] DTO to DTO (Stream API) (0) | 2022.01.18 |
---|---|
[Java] Json 문자열 객체 형태로 바꾸기 (Json String To DTO) (0) | 2022.01.12 |
[Java] Executors Thread 사용법 (0) | 2022.01.06 |
[Java] 자바 Thread 주요 기능(sleep, interrupt, join) (0) | 2022.01.05 |
[Java] 자바 Thread 생성하기 (0) | 2022.01.04 |