-
[SW 아카데미 모각코] 1주차 활동 정리모여서 각자 코딩/2022 SW 아카데미 모각코 2022. 7. 8. 18:00728x90
일시 : 7월 8일 금 15:00 ~ 18:00 [ Zoom ]
Stream
- java 8 이상 부터 사용 가능
- 데이터의 연속
- System.in / System.out 역시 stream
- Collections 프레임워크에서 제공되는 stream()
- Collections 추상체에서 사용할 수 없던 함수형 인터페이스를 사용할 수 있다.
고차함수 사용
: filter, map, foreach와 같은 고차함수(함수를 인자로 받는 함수)가 제공된다.
Arrays.asList(“A”, “AB”, “ABC”, “ABCD”, “ABCDE”) .stream() .map(s -> s.length()) .filter(i -> I%2 == 1) .forEach(System.out::println);
Stream 생성
: iterator와 generate를 사용하여 stream을 만들 수 있다.
1. 배열을 stream으로 만들기
Arrays.asList(“A”, “AB”, “ABC”, “ABCD”, “ABCDE”) .stream() .map(s -> s.length()) .filter(i -> I%2 == 1) .forEach(System.out::println);
=> stream() : List에 존재하는 함수로 인자값들을 사용해 stream으로 만들 수 있다.
IntStream s2 = Arrays.stream(new int[] {1, 2, 3});
=> int형 배열의 경우 primitive type이기 때문에 int에 대한 stream을 generic으로 만드는 것이 불가능하다.
=> IntStream 타입을 통해 int형 배열을 stream으로 생성할 수 있다.
IntStream s2 = Arrays.stream(new int[] {1, 2, 3}).boxed().toArray(Integer[]::new);
=> boxed()를 통해 primitive type 배열을 레퍼런스 타입으로 변경할 수 있다. (int -> Integer)
=> toArray()의 경우 인자값이 없다면 Object 타입으로 생성되어 인자로 Integer 지정을 해주어야한다.
2. generate 사용하기
Stream.generate( () -> 1).limit(10).forEach(System.out::println);
=> generate는 계속해서 1을 생성하기 때문에 limit을 통해 횟수 제한을 줄 수 있다.
3. iterator 사용하기
Stream.iterate(0, (i) -> i+1).limit(10);
=> iterate는 시드 값을 설정해주면 결과가 입력으로 들어온다.
=> limit을 사용해 횟수 제한을 줄 수 있다.
728x90'모여서 각자 코딩 > 2022 SW 아카데미 모각코' 카테고리의 다른 글
[SW 아카데미 모각코] 6주차 활동 정리 (0) 2022.08.12 [SW 아카데미 모각코] 5주차 활동 정리 (0) 2022.08.05 [SW 아카데미 모각코] 4주차 활동 정리 (0) 2022.07.28 [SW 아카데미 모각코] 3주차 활동 정리 (0) 2022.07.21 [SW 아카데미 모각코] 2주차 활동 정리 (0) 2022.07.14