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); } } }
Output:
7 apple lemon orange banana litchi mango papaya
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 .
Atas ialah kandungan terperinci Adakah HashMap Java's Guarantee Retrieval Order?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!