Java 문자열을 문자 스트림으로 변환
1. chars()를 이용한 변환 String API에는 String 개체에서 S 스트림의 인스턴스를 얻을 수 있는 chars()라는 새로운 메서드가 있다. 이 간단한 API는 입력 String에서 Int Stream 인스턴스를 반환한다. 간단히 말해서 IntStream에는 String 객체의 문자에 대한 정수 표현이 포함되어 있다. String ...
1. chars()를 이용한 변환 String API에는 String 개체에서 S 스트림의 인스턴스를 얻을 수 있는 chars()라는 새로운 메서드가 있다. 이 간단한 API는 입력 String에서 Int Stream 인스턴스를 반환한다. 간단히 말해서 IntStream에는 String 객체의 문자에 대한 정수 표현이 포함되어 있다. String ...
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 -...