editor php Strawberry akan memperkenalkan kepada anda peranan fungsi Lamba dalam kaedah groupingBy Java dalam artikel ini. groupingBy ialah kaedah untuk pengelompokan yang dilaksanakan melalui antara muka Pengumpul. Walau bagaimanapun, fungsi Lamba tidak berfungsi dalam kaedah ini. Seterusnya, kami akan memperincikan mengapa fungsi Lamba tidak boleh digunakan dalam kaedah groupingBy dan menyediakan beberapa alternatif. Mari kita meneroka bersama-sama!
Saya mencipta peta pertama saya di mana kuncinya ialah slot rentetan untuk kelas sukan dan nilainya ialah bilangan peserta setiap slot. Sekarang saya ingin mencipta peta kedua dengan kunci dan nilai pada dasarnya diterbalikkan, jadi kuncinya ialah bilangan peserta dan nilainya ialah senarai slot dengan bilangan peserta itu. Saya menulis kod ini tetapi saya tidak tahu mengapa ia mengadu tentang fungsi lambda saya dalam aliran java kedua... Saya benar-benar menghabiskan satu jam memikirkannya dan saya amat menghargai sebarang bantuan! Terima kasih terlebih dahulu, berikut kodnya:
public SortedMap<Integer, List<String>> slotsPerNofParticipants(String gymnname) throws FitException{ // map with key = Slot value = number of participants for the slot Map<String, Long> map = this.reservationsColl.stream().filter(r->r.getGym().getName().equals(gymnname)) .collect(Collectors.groupingBy(r->r.getDayslotStringFormat(), Collectors.counting() )); // map with key = number of participants value = list of slot with that number of participants Map<Integer,List<String>> res = map.entrySet().stream() .collect(Collectors.groupingBy( e->e.getValue.intValue(), Collectors.mapping(e->e.getKey, Collectors.toList() ) ) ); return null; }
Seperti yang anda lihat, saya cuba menukar nilai peta pertama (panjang) kepada kekunci jenis integer menggunakan fungsi lambda... Saya tidak tahu mengapa ia mengeluh tentang fungsi lambda... Mesej ralat ialah: "getkey tidak boleh dihuraikan atau bukan medan" "getvalue tidak boleh dihuraikan atau bukan medan"
Ada masalah di sini. Anda mempunyai beberapa kesilapan taip.
getvalue
应该是 getvalue()
getkey
应该是 getkey()
KodTidak dibetulkan
Map<Integer,List<String>> res = map.entrySet().stream() .collect(Collectors.groupingBy( e->e.getValue.intValue(), Collectors.mapping(e->e.getKey, Collectors.toList() ) ) );
Sebarang soalan lain yang disebabkan oleh objek hendaklah termasuk pengisytiharan kelas dan beberapa data sampel.
Hendaklah memasukkan input dan output yang dijangkakan.
Atas ialah kandungan terperinci Fungsi Lamba tidak berfungsi dalam kumpulan javaMengikut kaedah (melalui antara muka Pengumpul). Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!