Rumah > Java > javaTutorial > Adakah HashMap Java's Guarantee Retrieval Order?

Adakah HashMap Java's Guarantee Retrieval Order?

Susan Sarandon
Lepaskan: 2024-12-14 08:13:10
asal
432 orang telah melayarinya

Does Java's HashMap Guarantee Retrieval Order?

Adakah Pesanan Pengambilan Peta Hash Dipelihara?

Di Java, HashMaps menggunakan algoritma khusus untuk menyimpan dan mendapatkan data, membuatkan sesetengah pengguna tertanya-tanya tentang susunan nilai diambil semula. Sambil kami menyelidiki coretan kod, kami akan menemui kebenaran di sebalik susunan pengambilan HashMap.

import java.util.HashMap;

public class HashMapExample {
   public static void main(String[] args) {
       HashMap<Integer, String> hashmap = new HashMap<Integer, String>();
       hashmap.put(1, "apple" );
       hashmap.put(2, "lemon" );
       hashmap.put(3, "orange" );
       hashmap.put(4, "banana" );
       hashmap.put(5, "litchi" );
       hashmap.put(6, "mango" );
       hashmap.put(7, "papaya" );

       System.out.println(hashmap.size());

       for (String key : hashmap.values()) {
           System.out.println(key);
       }
   }
}
Salin selepas log masuk

Output:

7
apple
lemon
orange
banana
litchi
mango
papaya
Salin selepas log masuk

Gelagat Mengejutkan :

Anehnya, nilainya diambil dalam susunan yang sama mereka dimasukkan. Walau bagaimanapun, pemerhatian ini mungkin tidak selalunya benar.

Kebenaran:

Menurut HashMap Javadoc, tiada jaminan bahawa pesanan pengambilan akan kekal konsisten dari semasa ke semasa . Ini bermakna pesanan pengambilan boleh berubah sewenang-wenangnya.

Perlu Pesanan Konsisten?

Jika pesanan yang konsisten adalah penting, seseorang boleh memilih struktur data alternatif seperti LinkedHashMap atau TreeMap .

  • LinkedHashMap: Mengekalkan sisipan atau pesanan akses (LIFO)
  • TreeMap: Mengekalkan susunan perbandingan berdasarkan kekunci

Atas ialah kandungan terperinci Adakah HashMap Java's Guarantee Retrieval Order?. 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