Rumah >Java >javaTutorial >Bagaimanakah Saya Boleh Menukar Senarai kepada Peta dalam Java 8 Menggunakan Strim?

Bagaimanakah Saya Boleh Menukar Senarai kepada Peta dalam Java 8 Menggunakan Strim?

Linda Hamilton
Linda Hamiltonasal
2024-12-21 00:49:10497semak imbas

How Can I Convert a List to a Map in Java 8 Using Streams?

Java 8: Senarai Tukar kepada Map

Dalam Java 8 dan ke atas, anda boleh menukar senarai objek ke dalam peta dengan mudah menggunakan API aliran berkuasa dan lambda, tanpa bergantung pada perpustakaan pihak ketiga. Mari kita ubah suai contoh Java 7:

private Map<String, Choice> nameMap(List<Choice> choices) {
    Map<String, Choice> hashMap = choices.stream()
        .collect(Collectors.toMap(Choice::getName, Function.identity()));
    return hashMap;
}

Berikut ialah perkara yang berlaku dalam kod ini:

  1. Kaedah stream() mencipta aliran objek Pilihan daripada Senarai asal .
  2. Kaedah collect() menamatkan aliran dan mengumpulkan elemen menjadi Peta.
  3. Pengumpul Collectors.toMap() digunakan untuk mencipta peta. Ia memerlukan dua argumen:

    • Argumen pertama ialah fungsi yang memetakan setiap elemen dalam strim ke kunci peta. Di sini, Choice::getName digunakan untuk memetakan setiap pilihan kepada namanya.
    • Argumen kedua ialah fungsi yang memetakan setiap elemen dalam strim kepada nilai peta. Dalam kes ini, Function.identity() digunakan untuk mengekalkan pilihan asal sebagai nilai.
  4. Peta yang terhasil disimpan dalam pembolehubah hashMap dan dikembalikan.

Pendekatan ini memanfaatkan strim Java 8 untuk menulis kod yang ringkas dan cekap untuk menukar senarai menjadi peta.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Menukar Senarai kepada Peta dalam Java 8 Menggunakan Strim?. 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