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
Susan Sarandonasal
2024-11-30 02:53:11517semak imbas

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));

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]);
}

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));

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!

Kenyataan:
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