-
day31 - JAVA (자바, 스트림, 플랫맵, 필터)KIC/JAVA 2021. 7. 27. 15:30반응형
[stream Ex]
package javaPro.java_Stream; import java.util.Arrays; import java.util.Iterator; import java.util.List; import java.util.stream.Stream; public class StreamEx0 { public static void main(String[] args) { List<String> list = Arrays.asList("홍길동", "김삿갓", "이몽룡", "성춘향"); System.out.println("외부 반복자 사용"); Iterator it = list.iterator(); while (it.hasNext()) { System.out.println(it.next()); } System.out.println("내부 반복자 사용"); //list.stream().forEach(s -> System.out.println(s)); Stream<String> st = list.stream(); // List 객체를 Stream 객체 변환 st.forEach(s -> System.out.println(s)); System.out.println("다시 출력"); list.stream().forEach(s -> System.out.println(s)); } }
[FlatMap Ex]
package javaPro.java_Stream; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class FlatMapEx2 { public static void main(String[] args) { List<Student> studentList1 = Arrays.asList( new Student("홍길동", 10),new Student("강나라", 20), new Student("장일동", 30) ); List<Student> studentList2 = Arrays.asList( new Student("나자바", 10),new Student("신용권", 20), new Student("유미선", 30) ); List<List<Student>> stu = new ArrayList<List<Student>>(); stu.add(studentList1); stu.add(studentList2); long sum= stu.stream() // .flatMap(s -> s.stream()) .flatMap(List::stream) // .mapToInt(Student :: getScore) .mapToInt(s -> s.getScore()) .count(); System.out.println(sum); //.forEach(score -> System.out.println(score)); } }
[필터 ex]
package javaPro.java_Stream; import java.util.Arrays; import java.util.List; class Member { public static int MALE = 0; public static int FEMALE = 1; private String name; private int sex; private int age; public Member(String name, int sex, int age) { this.name = name; this.sex = sex; this.age = age; } public int getSex() { return sex; } public int getAge() { return age; } } public class FilterEx4 { public static void main(String[] args) { List<Member> list = Arrays.asList(new Member("홍길동", Member.MALE, 30), new Member("김나리", Member.FEMALE, 20), new Member("신용권", Member.MALE, 45), new Member("박수미", Member.FEMALE, 27)); double ageAvg = list.stream().filter(m -> m.getSex() == Member.MALE).mapToInt(s -> s.getAge()).average() .getAsDouble(); System.out.println("남자 평균 나이: " + ageAvg); } }
300x250'KIC > JAVA' 카테고리의 다른 글
day33_1 - JAVA (자바, 멀티 스레드) (0) 2021.07.29 day32 - JAVA (자바, 스트림 예제, 멀티 스레드) (0) 2021.07.28 day30 - JAVA (자바, 스트림, 병렬 처리) (0) 2021.07.27 day29 - JAVA (자바, 메소드 참조, 스트림, 병렬처리) (0) 2021.07.25 day28 - JAVA (자바, Collection 예제, 람다식) (0) 2021.07.22