সংগ্রহগুলি সহজে ফিল্টার করার জন্য আমি জাভা 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(…)
।