Rumah > Java > javaTutorial > Bagaimanakah Saya Boleh Menukar Senarai Java kepada Peta dengan Cekap?

Bagaimanakah Saya Boleh Menukar Senarai Java kepada Peta dengan Cekap?

Susan Sarandon
Lepaskan: 2024-11-30 02:53:11
asal
547 orang telah melayarinya

How Can I Efficiently Convert a Java List to a Map?

Cara Menukar Senarai kepada Peta di Jawa: Pendekatan Optimum

Menukar Senarai kepada Peta di Jawa ialah tugas biasa yang boleh dicapai dengan pelbagai cara. Satu pendekatan adalah untuk melelaran melalui Senarai dan mengisi Peta secara manual. Walau bagaimanapun, terdapat kaedah yang lebih cekap untuk melaksanakan penukaran ini menggunakan fungsi Java terbina dalam.

Pendekatan Berasaskan Strim (Java 8 atau Kemudian)

Dengan Java 8, API Strim menyediakan cara ringkas dan berprestasi untuk menukar Senarai kepada Peta. Pendekatan ini menggunakan kaedah Collectors.toMap():

Map<Integer, String> map = 
    list.stream().collect(Collectors.toMap(Item::getKey, item -> item));
Salin selepas log masuk

Di sini, fungsi Item::getKey lambda mendapatkan semula kunci untuk setiap elemen dalam senarai, manakala item -> item lambda mendapatkan semula nilai.

Pendekatan Manual Menggunakan Gelung

Untuk versi pra-Java 8 atau jika penstriman tidak sesuai, pendekatan manual boleh digunakan:

List<Object[]> results;
Map<Integer, String> resultsMap = new HashMap<>();
for (Object[] o : results) {
    resultsMap.put((Integer) o[0], (String) o[1]);
}
Salin selepas log masuk

Pendekatan ini melibatkan lelaran melalui Senarai dan mengekstrak pasangan kunci dan nilai secara manual, yang mungkin kurang cekap daripada pendekatan berasaskan aliran.

Menggunakan Operator Binari untuk Fungsi Bukan Bijektif

Jika fungsi pemetaan bukan bijektif (iaitu, berbilang nilai boleh dipetakan ke kunci yang sama), pengendali binari boleh digunakan untuk menggabungkan nilai kunci pendua. Contohnya, jika kita ingin mencari jumlah nilai untuk setiap kunci unik:

Map<String, Integer> map = 
    intList.stream().collect(toMap(i -> String.valueOf(i % 3), 
                                   i -> i, 
                                   Integer::sum));
Salin selepas log masuk

Di sini, operator binari Integer::sum menyediakan logik untuk menggabungkan nilai kunci pendua.

Kesimpulan

Walaupun pendekatan optimum untuk menukar Senarai kepada Peta bergantung pada spesifik keperluan, menggunakan API Strim dengan Collectors.toMap() disyorkan untuk kecekapan dan ringkasnya. Pendekatan manual boleh digunakan dalam versi Java yang lebih lama atau apabila penstriman tidak berkenaan.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Senarai Java kepada Peta dengan Cekap?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan