Rumah > Java > javaTutorial > HashMap, LinkedHashMap dan TreeMap dalam Java: Apakah Perbezaan Utama?

HashMap, LinkedHashMap dan TreeMap dalam Java: Apakah Perbezaan Utama?

Linda Hamilton
Lepaskan: 2024-12-18 07:57:10
asal
205 orang telah melayarinya

HashMap, LinkedHashMap, and TreeMap in Java: What are the Key Differences?

Meneroka Perbezaan antara HashMap, LinkedHashMap dan TreeMap

Di Java, ketiga-tiga struktur data ini menawarkan pendekatan yang berbeza-beza untuk mengatur dan mengakses data, masing-masing dengan uniknya ciri.

HashMap:

HashMap mengutamakan kecekapan, membolehkan pengambilan semula dan penyimpanan data dengan pantas. Ia tidak mengekalkan sebarang susunan tertentu dan sebaliknya menumpukan pada melaksanakan jadual cincang untuk menyediakan prestasi masa malar untuk kebanyakan operasi.

LinkedHashMap:

LinkedHashMap menggabungkan faedah daripada HashMap dan LinkedList, mengekalkan susunan sisipan elemen. Ia menggunakan struktur senarai dua pautan, membolehkan akses pantas dan tersusun kepada data.

TreeMap:

TreeMap menawarkan antara muka yang diisih, mengekalkan kekunci dalam menaik pesanan. Ia bergantung pada struktur data pokok Merah-Hitam, yang membolehkan kerumitan masa logaritma untuk operasi seperti mencari, memasukkan dan memadamkan elemen.

Hashtables dalam Java:

Hashtables, tidak lagi biasa digunakan, mendahului HashMap di Java dan berkongsi banyak persamaan, iaitu pelaksanaan berasaskan hash mereka. Mereka disegerakkan, memastikan keselamatan benang, tetapi dengan kos overhed tambahan.

Contoh:

Pertimbangkan coretan berikut, yang menggambarkan perbezaan dalam output untuk ketiga-tiga struktur:

Map<String, String> m1 = new HashMap<>();
SortedMap<String, String> sm = new TreeMap<>();
LinkedHashMap<String, String> lm = new LinkedHashMap<>();

// Insert elements into all three maps
m1.put("map", "HashMap");
m1.put("schildt", "java2");
m1.put("mathew", "Hyden");
m1.put("schildt", "java2s");

sm.put("map", "TreeMap");
sm.put("schildt", "java2");
sm.put("mathew", "Hyden");
sm.put("schildt", "java2s");

lm.put("map", "LinkedHashMap");
lm.put("schildt", "java2");
lm.put("mathew", "Hyden");
lm.put("schildt", "java2s");

// Output the keysets and values from each map
print(m1.keySet());
print(m1.values());

print(sm.keySet());
print(sm.values());

print(lm.keySet());
print(lm.values());
Salin selepas log masuk

Output:

HashMap (tidak tersusun):

[map, schildt, mathew, schildt]
[HashMap, java2, Hyden, java2s]
Salin selepas log masuk

TreeMap (diisih):

[map, mathew, schildt, schildt]
[TreeMap, Hyden, java2, java2s]
Salin selepas log masuk

LinkedHashMap (sisipan-tertib):

[map, schildt, mathew, schildt]
[LinkedHashMap, java2, Hyden, java2s]
Salin selepas log masuk

Atas ialah kandungan terperinci HashMap, LinkedHashMap dan TreeMap dalam Java: Apakah Perbezaan Utama?. 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