stream 4

스트림 활용법

정리 스트림을 활용하는 방법에 관한 내용인데, 사실 이 부분은 어느 정도 알고 있기 때문에 정리하고자 한다. 이전에서 보았듯, 스트림은 내부 반복 뿐 아니라 코드를 병렬로 실행할지 여부를 알고 있다. 그래서 내부적으로 다양한 최적화가 가능하다. 필터링 프레디케이트 필터링 (filter) 프레디케이트를 사용해서 필터핑을 한다. 고유 요소 필터링 (distinct) 이름에서 알 수 있듯, 중복된 값을 제거하는것 객체의 Equals, HashCode를 통해 진행한다. 슬라이싱 요소의 선택이나 스킵 프레디케이트 활용 슬라이싱 Takewhile predicate결과값 이외는 모두 버리는 연산 즉, 결과값이 TRUE일 때까지는 값을 가져오지만 false가 되는 순간 스트림이 중지되고 반환 filter와의 차이점은 ..

이론 정리/java 2023.11.04

Stream의 연산

스트림의 연산 스트림은 중간 연산과 최종 연산을 제공한다. 중간연산 연산결과가 Stream 여러 번 적용 가능 최종연산 연산결과가 Stream이 아니다. 단 한번만 적용 가능(Stream요소를 소모함) 중간 연산 스트림 자르기 - skip(), limit() Stream skip(long n) // 앞에서부터 n개 건너뛰기 -> n+1 ~ 끝까지 Stream limit(long maxSize) // maxSize이후는 잘라냄 -> 0 ~ maxSize까지예를 들어 IntStream intStream = IntStream.rangeClosed(1, 10); // 1 2 3 4 5 6 7 8 9 10 intStream.skip(3).limit(5).forEach(System.out::print); // 4 ..

이론 정리/java 2023.01.14

Stream 만들기

Stream 만들기 collection을 Stream으로 만들기 Collection 인터페이스의 stream()으로 컬렉션을 스트림으로 변환 Stream stream() // Collection인터페이스의 메서드 List, Set을 변환할때 이를 사용한다. 예를 들어 List list = Arrays.asList(1,2,3,4,5); Stream intStream = list.stream(); // list를 스트림으로 변환 // 스트림의 모든 요소를 출력 intStream.forEach(System.out::print); //12345요런 식으로, List를 stream()메소드를 사용하여 Stream으로 바꿀 수 있다. 그리고 메서드 참조를 사용하여 stream의 내용을 다 출력시키면 된다. 참고로 ..

이론 정리/java 2023.01.13

Stream(스트림)

Stream(스트림) 다양한 데이터 소스를 표준화된 방법으로 다루기 위한 것 여기서 데이터 소스란, 컬렉션이나 배열처럼 여러가지 데이터들을 저장하고 있는 것을 의미한다. 그동안은 표준화된 방법을 위해 Collection Framework(List, Set, Map)을 사용해 왔는데 이 Collection Framework의 List, Set, Map은 서로의 사용법이 달랐었다. -> 즉, 사실 제대로된 표준화가 아니었다. JDK1.8부터는 stream을 통해 진짜 저 Collection Framework를 제대로 통일시킬 수 있었다. Stream 장점 컬렉션(List, Set, Map)과 배열을 Stream에 태운다. Stream의 사용 방식대로 쓰면 다른 데이터소스인데도 같은 메서드를 사용해서 같은 결..

이론 정리/java 2023.01.12