컬렉션을 쉽게 필터링하기 위해 Java 8 람다로 놀고있었습니다. 그러나 나는 동일한 진술 내에서 결과를 새로운 목록으로 검색하는 간결한 방법을 찾지 못했습니다. 지금까지 가장 간결한 접근 방식은 다음과 같습니다.
List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100L, 120L, 133L, 333L);
List<Long> targetLongList = new ArrayList<>();
sourceLongList.stream().filter(l -> l > 100).forEach(targetLongList::add);
그물에있는 예제는 새로운 결과 목록을 생성하지 않고 멈추기 때문에 내 질문에 대답하지 못했습니다. 더 간결한 방법이 있어야합니다. 나는이 것을 예상했을 것이다 Stream
클래스 등의 방법이있다 toList()
, toSet()
...
targetLongList
세 번째 줄 에서 변수 를 직접 할당 할 수 있는 방법이 있습니까?
List<Long> targetLongList = sourceLongList.stream().collect(Collectors.toList());
sourceLongList
나중에 필요하지 않은 경우Collection.removeIf(…)
편의를 위해 존재 합니다.