Saya sedang bermain-main dengan Java 8 lambdas untuk dengan mudah menyaring koleksi. Tetapi saya tidak menemukan cara ringkas untuk mengambil hasilnya sebagai daftar baru dalam pernyataan yang sama. Inilah pendekatan saya yang paling ringkas sejauh ini:
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);
Contoh di internet tidak menjawab pertanyaan saya karena berhenti tanpa menghasilkan daftar hasil baru. Pasti ada cara yang lebih ringkas. Saya akan diharapkan, bahwa Streamkelas memiliki metode seperti toList(), toSet()...
Apakah ada cara agar variabel targetLongListdapat langsung ditugaskan oleh baris ketiga?
List<Long> targetLongList = sourceLongList.stream().collect(Collectors.toList());
sourceLongListsetelah itu adaCollection.removeIf(…)untuk kenyamanan.