728x90
반응형

java-stream 4

속성 별 Java 8 구별

질문 : 속성 별 Java 8 구별 Java 8에서 각 객체의 속성의 구별 성을 확인하여 Stream API를 사용하여 컬렉션을 필터링하려면 어떻게해야합니까? 예를 들어, Person 개체 목록이 있고 같은 이름을 가진 사람들을 제거하고 싶습니다. persons.stream().distinct(); Person 객체에 대해 기본 동등성 검사를 사용하므로 다음과 같은 것이 필요합니다. persons.stream().distinct(p -> p.getName()); 불행히도 distinct() 메서드에는 이러한 오버로드가 없습니다. Person 클래스 내에서 동등성 검사를 수정하지 않고 이것을 간결하게 할 수 있습니까? 답변 상태 저장 필터로 distinct 것을 고려하십시오. 다음은 이전에 본 내용에 대한..

Java 8 스트림을 배열로 변환하는 방법

질문 : Java 8 스트림을 어레이로 변환하는 방법은 무엇입니까? Stream 을 배열로 변환하는 가장 쉽고 짧은 방법은 무엇입니까? 답변 가장 쉬운 방법은 toArray(IntFunction generator) 메서드를 사용하는 것입니다. 이것은 메소드에 대한 API 문서 에서 제안됩니다. String[] stringArray = stringStream.toArray(String[]::new); 그것이하는 일은 정수 (크기)를 인자로 받고 String[] new String[] 의 오버로드 중 하나입니다. IntFunction 작성할 수도 있습니다. Stream stringStream = ...; String[] stringArray = stringStream.toArray(size -> new St..

Java 8에서 map ()과 flatMap () 메소드의 차이점

질문 : Java 8에서 map ()과 flatMap () 메소드의 차이점은 무엇입니까? Stream.map() 과 Stream.flatMap() 메서드의 차이점은 무엇입니까? 답변 map 과 flatMap 은 모두 Stream 적용될 수 있으며 둘 다 Stream 반환합니다. 차이점은 map 작업은 각 입력 값에 대해 하나의 출력 값을 flatMap 작업은 각 입력 값에 대해 임의의 숫자 (0 개 이상의) 값을 생성한다는 것입니다. 이는 각 작업에 대한 인수에 반영됩니다. map 작업은 입력 스트림의 각 값에 대해 호출되고 하나의 결과 값을 생성 Function flatMap 작업은 개념적으로 하나의 값을 사용하고 임의의 수의 값을 생성하려는 함수를 사용합니다. 그러나 Java에서는 메서드가 0 또는 ..

자바 8 List<V>를 Map<K, V>로 변환 하는 방법

질문 : 자바 8 목록 지도로 Java 8의 스트림과 람다를 사용하여 객체 목록을 맵으로 변환하고 싶습니다. 이것이 Java 7 이하에서 작성하는 방법입니다. private Map nameMap(List choices) { final Map hashMap = new HashMap(); for (final Choice choice : choices) { hashMap.put(choice.getName(), choice); } return hashMap; } Java 8과 Guava를 사용하여 쉽게 수행 할 수 있지만 Guava없이 수행하는 방법을 알고 싶습니다. 구아바 : private Map nameMap(List choices) { return Maps.uniqueIndex(choices, new Fu..

728x90
반응형