Java 스트림 마지막 요소를 얻기
1. Reduce API 사용 Reduce는 Stream의 요소 집합을 단일 요소로 줄인다. 이 경우 스트림의 마지막 요소를 가져오기 위해 요소 집합을 줄인다. 이 방법은 순차 스트림에 대한 결정론적 결과만 반환한다. 문자열 값 목록을 사용하고 List에서 스트림을 가져온 다음 다음을 줄여본다. List<String> valueList...
1. Reduce API 사용 Reduce는 Stream의 요소 집합을 단일 요소로 줄인다. 이 경우 스트림의 마지막 요소를 가져오기 위해 요소 집합을 줄인다. 이 방법은 순차 스트림에 대한 결정론적 결과만 반환한다. 문자열 값 목록을 사용하고 List에서 스트림을 가져온 다음 다음을 줄여본다. List<String> valueList...
1. Iterable을 스트림 으로 변환 Iterable 인터페이스는 일반성을 염두에 두고 설계되었으며 자체적으로 stream() 메서드를 제공 하지 않는다. 간단히 말해서 이를 StreamSupport.stream() 메서드에 전달하고 지정된 Iterable 인스턴스에서 Stream을 가져올 수 있다. Iterable 인스턴스를 고려해 본다. ...
1. 일반 자바 사용 정수 범위를 사용하여 스트림을 탐색할 수 있으며 원본 요소가 인덱스로 액세스할 수 있는 배열이나 컬렉션에 있다는 이점도 있다. 인덱스를 반복하고 이 접근 방식을 보여주는 메서드를 구현해 본다. 간단히 문자열 배열을 얻고 인덱스된 요소만 선택하려고 한다. public List<String> getEvenIndexed...
1. Stream API를 사용하여 문자열 결합 Stream API를 사용하여 String 배열을 쉼표로 구분된 String으로 결합하는 함수를 만들어 본다. public static String join(String[] arrayOfString){ return Arrays.asList(arrayOfString) .stream() ...
1. Optional의 Map과 Flatmap map() 메소드는 Optional과 잘 작동한다. 함수가 필요한 정확한 유형을 반환하는 경우이다. Optional<String> s = Optional.of("test"); assertEquals(Optional.of("TEST"), s.map(String::toUpperCase)); 그...
1. 일반 자바 사용 JDK 8 Stream 클래스에는 몇 가지 유용한 정적 유틸리티 메서드가 있다. concat() 메서드를 살펴본다. 1) 두 스트림 병합 Stream 2개를 결합하는 가장 간단한 방법은 정적 Stream.concat() 메서드를 사용하는 것이다. @Test public void whenMergingStreams_thenResu...
1. 병렬 스트림 임의의 Collection 유형에 대해 parallelStream 메서드를 호출하면 병렬 Stream이 반환될 수 있다. @Test public void givenList_whenCallingParallelStream_shouldBeParallelStream(){ List<Long> aList = new Array...
1. filter() 사용 Java 8의 옵션 중 하나는 Optional::isPresent를 사용하여 값을 필터링한 다음 Optional::get 함수를 사용하여 매핑을 수행하여 값을 추출하는 것이다. List<String> filteredList = listOfOptionals.stream() .filter(Optional::isP...
1. Java 9의 Stream.takeWhile() 문자열 항목의 스트림이 있고 길이가 홀수인 한 해당 요소를 처리하려고 한다고 가정해 본다. Java 9 Stream.takeWhile 메소드를 사용해 본다. Stream.of("cat", "dog", "elephant", "fox", "rabbit", "duck") .takeWhile(n -...
1. List to Map List를 Map으로 변환하는 가장 간단한 방법이다. Book 클래스를 정의하는 방법은 다음과 같다. class Book { private String name; private int releaseYear; private String isbn; // getters and setters...