package ch02;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import java.util.stream.Collectors;
public class SteamAPIExample {
static class Member {
String name;
int age;
public Member(String name, int age) {
this.name = name;
this.age = age;
}
}
public static void main(String[] args) {
List members1 = new ArrayList<>();
members1.add(new Member("카리ë", 24));
members1.add(new Member("ìí°", 23));
members1.add(new Member("ì§ì ¤", 24));
members1.add(new Member("ëë", 22));
// ì¤í¸ë¦¼ API를 ì¬ì©íì§ ìì ìì ë°©ì
List chosenMembers = new ArrayList<>();
// ëì´ê° 24ì¸ì¸ 멤ë²ì ì´ë¦ì chosenMembers 리ì¤í¸ì ì½ì
for (Member member : members1) {
if (member.age == 24)
chosenMembers.add(member.name);
}
// chosenMembers ì ë ¬
Collections.sort(chosenMembers);
// chosenMembers ì¶ë ¥
for (String name : chosenMembers) {
System.out.println(name);
}
// ---
List members2 = new ArrayList<>();
members2.add(new Member("카리ë", 24));
members2.add(new Member("ìí°", 23));
members2.add(new Member("ì§ì ¤", 24));
members2.add(new Member("ëë", 22));
members2.stream() // ì¤í¸ë¦¼ API
.filter(m -> m.age == 24) // 24ì¸ íí°ë§
.map(m -> m.name) // ì´ë¦ 매í
.sorted() // ì ë ¬
.collect(Collectors.toList()) // 리ì¤í¸ë¡ ì·¨í©(ìë ì¶ë ¥ì ìëµ ê°ë¥)
.forEach(System.out::println); // ë©ìë ì°¸ì¡°ë¡ ì¶ë ¥
// ---
// ì«ì 리ì¤í¸
List numbers1 = Arrays.asList(49.1, 25.5, 9.9);
// ëë¤ ííì
numbers1.stream() // ì¤í¸ë¦¼ API
.map(n -> Math.round(n)) // ë°ì¬ë¦¼ ì²ë¦¬
.forEach(n -> System.out.println(n)); // ìííë©° ì¶ë ¥
// ---
// ì«ì 리ì¤í¸
List numbers2 = Arrays.asList(49.1, 25.5, 9.9);
// ë©ìë 참조
numbers2.stream() // ì¤í¸ë¦¼ API
.map(Math::round) // ë°ì¬ë¦¼ ì²ë¦¬
.forEach(System.out::println); // ìííë©° ì¶ë ¥
}
}