Rumah  >  Artikel  >  Java  >  Kuasai intipati Peta Java, kemahiran yang diperlukan untuk pelajar lanjutan

Kuasai intipati Peta Java, kemahiran yang diperlukan untuk pelajar lanjutan

WBOY
WBOYke hadapan
2024-02-19 18:00:35772semak imbas

掌握Java Map的精髓,进阶学习者的必备技能

Editor PHP Zimo mengesyorkan mempelajari Peta Java, yang merupakan kemahiran utama untuk pelajar lanjutan. Menguasai intipati Peta Java bukan sahaja dapat meningkatkan kemahiran pengaturcaraan, tetapi juga membantu pelajar memahami aplikasi struktur data dan algoritma dengan lebih mendalam, meletakkan asas yang kukuh untuk pengaturcaraan masa hadapan.

Peta mempunyai banyak kegunaan di Jawa. Contohnya, anda boleh menggunakan Peta untuk menyimpan ID pengguna dan kata laluan, ID produk dan harga, atau nama fail dan kandungan fail. Peta juga bagus untuk menyimpan tetapan konfigurasi dalam aplikasi.

Terdapat tiga pelaksanaan Peta terbina dalam dalam Java: HashMap, TreeMap dan LinkedHashMap. HashMap ialah pelaksanaan Peta berdasarkan jadual cincang, dan ia merupakan pelaksanaan Peta yang paling banyak digunakan. TreeMap ialah pelaksanaan Peta berdasarkan pepohon merah-hitam, yang mengisih pasangan nilai kunci dalam susunan utama. LinkedHashMap ialah pelaksanaan Peta berdasarkan senarai terpaut, yang mengekalkan susunan sisipan pasangan nilai kunci.

HashMap

HashMap ialah pelaksanaan Peta yang paling biasa digunakan. Ia menggunakan jadual cincang untuk menyimpan pasangan nilai kunci. Jadual cincang ialah

array

di mana setiap elemen ialah senarai terpaut. Apabila anda menambah pasangan nilai kunci pada HashMap, HashMap mengira kod cincang kunci dan menyimpan pasangan nilai kunci dalam senarai terpaut yang sama seperti kod cincang. Apabila anda mendapatkan nilai daripada HashMap, HashMap mengira kod cincang kunci dan kemudian mencari kunci dalam senarai terpaut yang sama seperti kod cincang. Kerumitan HashMap ialah O(1), yang bermaksud bahawa secara purata, masa untuk mencari, menambah atau memadam pasangan nilai kunci adalah tetap. Walau bagaimanapun, dalam kes yang paling teruk, kerumitan HashMap mungkin merosot kepada O(n), dengan n ialah bilangan pasangan nilai kunci dalam Peta. Ini kerana jadual cincang boleh menjadi tidak seimbang, menyebabkan beberapa senarai terpaut menjadi sangat panjang.

Peta Pokok

TreeMap ialah pelaksanaan Peta yang mengisih pasangan nilai kunci dalam susunan utama. Ia menggunakan pokok merah-hitam untuk menyimpan pasangan nilai kunci. Pokok merah-hitam ialah pokok carian binari pengimbangan diri, yang bermaksud bahawa ketinggiannya sentiasa O(log n), dengan n ialah bilangan nod dalam pokok itu.

Kerumitan TreeMap ialah O(log n), yang bermaksud bahawa secara purata, masa untuk mencari, menambah atau memadam pasangan nilai kunci ialah O(log n). Walau bagaimanapun, dalam kes yang paling teruk, kerumitan TreeMap mungkin merosot kepada O(n), dengan n ialah bilangan pasangan nilai kunci dalam Peta. Ini kerana pokok merah-hitam boleh menjadi tidak seimbang, menyebabkan ketinggian pokok menjadi O(n).

LinkedHashMap

LinkedHashMap ialah pelaksanaan Peta yang mengekalkan susunan sisipan pasangan nilai kunci. Ia menggunakan senarai terpaut untuk menyimpan pasangan nilai kunci. Apabila anda menambah pasangan nilai kunci pada LinkedHashMap, pasangan nilai kunci akan ditambahkan pada penghujung senarai terpaut. Apabila anda mendapatkan nilai daripada LinkedHashMap, LinkedHashMap akan merentasi senarai terpaut sehingga ia menemui pasangan nilai kunci yang sepadan dengan kunci yang diberikan.

Kerumitan LinkedHashMap ialah O(n), dengan n ialah bilangan pasangan nilai kunci dalam Peta. Ini kerana LinkedHashMap mesti merentasi senarai terpaut untuk mencari pasangan nilai kunci yang sepadan dengan kunci yang diberikan.

Pilih pelaksanaan Peta yang sesuai

Apabila memilih pelaksanaan Peta yang sesuai, anda perlu mengambil kira faktor berikut:

    Prestasi:
  • Anda perlu mempertimbangkan keperluan prestasi Peta anda. Jika anda memerlukan Peta berprestasi tinggi, maka anda harus menggunakan HashMap. Jika anda memerlukan Peta yang mengisih pasangan nilai kunci dalam susunan kunci, maka anda harus menggunakan TreeMap. Jika anda memerlukan Peta yang mengekalkan susunan sisipan pasangan nilai kunci, maka anda harus menggunakan LinkedHashMap.
  • Keselamatan benang:
  • Anda perlu mempertimbangkan sama ada Peta perlu selamat benang. Jika Peta anda akan diakses oleh berbilang benang secara serentak, maka anda harus menggunakan ConcurrentHashMap. ConcurrentHashMap ialah pelaksanaan Peta selamat benang yang membolehkan anda menggunakan Map dengan selamat dalam persekitaran concurrency. Penggunaan Memori:
  • Anda perlu mempertimbangkan keperluan penggunaan memori Peta. HashMap biasanya menggunakan kurang memori daripada TreeMap dan LinkedHashMap.
  • Kod demo

Kod berikut menunjukkan cara menggunakan HashMap untuk menyimpan ID pengguna dan kata laluan:

Map<String, String> users = new HashMap<>();
users.put("alice", "passWord1");
users.put("bob", "password2");
users.put("charlie", "password3");

String password = users.get("alice");

Kod berikut menunjukkan cara menggunakan TreeMap untuk menyimpan ID produk dan harga:

Map<Integer, Double> products = new TreeMap<>();
products.put(1, 10.0);
products.put(2, 20.0);
products.put(3, 30.0);

Double price = products.get(2);

Kod berikut menunjukkan cara menggunakan LinkedHashMap untuk menyimpan nama fail dan kandungan fail:

Map<String, String> files = new LinkedHashMap<>();
files.put("file1.txt", "This is the content of file1.txt.");
files.put("file2.txt", "This is the content of file2.txt.");
files.put("file3.txt", "This is the content of file3.txt.");

String content = files.get("file2.txt");

Kesimpulan

Map ialah struktur data yang sangat berguna di Jawa. Ia membolehkan anda menyimpan dan mendapatkan semula nilai menggunakan kekunci. Terdapat banyak pelaksanaan Map yang berbeza, masing-masing mempunyai kebaikan dan keburukan tersendiri. Apabila memilih pelaksanaan Peta yang sesuai, anda perlu mempertimbangkan prestasi, keselamatan benang

Atas ialah kandungan terperinci Kuasai intipati Peta Java, kemahiran yang diperlukan untuk pelajar lanjutan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:lsjlt.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam