import java.util.stream.IntStream;
class Main {
public static void main(String[] args) {
// 일반적인 반복문
for (int i = 1; i <= 10; i++) {
System.out.println(i);
}
// 스트림 ( lambda 적용 전 )
IntStream.rangeClosed(1, 10) // 1부터 10까지의 물고기가 생성됨
.forEach(e -> { // .collect == 종단함수
System.out.println(e);
});
// 스트림 ( lambda 적용 후)
IntStream.rangeClosed(1, 10)
.forEach(e -> System.out.println(e));
// 스트림 ( lambda 적용한 것을 더 줄인 것 )
IntStream.rangeClosed(1, 10)
.forEach(System.out::println);
}
}
종단함수는 스트림을 끝낸 상태라는 뜻
e<< 는 엘리멘탈 (요소) 이다.
스트림 안에는 10개의 요소가 들어있는 상태 10개의 요소는 1부터 10까지다.
.forEach 안에 있는 출력 함수는 총 10번 실행된다.
import java.util.*;
public class Main {
public static void main(String[] args) {
System.out.println("== 리스트 ==");
List<Integer> ages = new ArrayList<>();
// 리스트는 데이터 넣을 때 편하다.
ages.add(10); // 0:철수
ages.add(20); // 1:영수
ages.add(30); // 2:미애
// 리스트는 데이터 꺼낼 때 불편하다.
System.out.println(ages.get(0)); // 철수 나이
System.out.println(ages.get(1)); // 영수 나이
System.out.println(ages.get(2)); // 미애 나이
System.out.println("== 리스트 순회 ==");
for (int i = 0; i < ages.size(); i++) {
System.out.println(i + ":" + ages.get(i));
}
System.out.println("== 맵 ==");
// 데이터를 넣은 순서를 기억하고 싶다면 LinkedHashMap을 사용하면 된다.
Map<String, Integer> agesMap = new HashMap<>();
// 맵은 데이터 넣을 때 불편하다.
agesMap.put("철수", 10); // 철수:10
agesMap.put("영수", 20); // 영수:20
agesMap.put("미애", 30); // 미애:30
// 맵은 데이터 꺼낼 때 편하다.
System.out.println(agesMap.get("철수"));
System.out.println(agesMap.get("영수"));
System.out.println(agesMap.get("미애"));
System.out.println("== 맵 순회 ==");
for (String key : agesMap.keySet()) {
System.out.println(key + ":" + agesMap.get(key));
}
}
}