Anda boleh menggunakan kaedah Map.replaceAll()
dalam Java 8 untuk menukar semua nilai kepada jenis String:
Map<String, Object> map = new HashMap<>(); // 添加一些键值对 map.put("key1", 123); map.put("key2", true); map.put("key3", new Date()); // 将所有的值转为 String 类型 map.replaceAll((k, v) -> String.valueOf(v));
Kod di atas akan menukar semua nilai dalam map
kepada jenis String .
HashMap ialah salah satu kelas pengumpulan yang paling banyak digunakan di Java Ia merupakan kaedah penyimpanan pasangan nilai kunci yang sangat pantas yang boleh digunakan untuk menyimpan dan mengakses sejumlah besar data. Berikut ialah beberapa kaedah biasa HashMap:
put(key, value)
: Tambahkan pasangan nilai kunci pada HashMap.
HashMap<String, Integer> map = new HashMap<>(); map.put("apple", 1); map.put("banana", 2);
get(key)
: Dapatkan nilai yang sepadan berdasarkan kekunci.
Integer value = map.get("apple");
containsKey(key)
: Tentukan sama ada HashMap mengandungi kunci yang ditentukan.
if (map.containsKey("apple")) { // ... }
containsValue(value)
: Tentukan sama ada HashMap mengandungi nilai yang ditentukan.
if (map.containsValue(1)) { // ... }
remove(key)
: Padamkan pasangan nilai kunci dalam HashMap berdasarkan kekunci.
map.remove("apple");
keySet()
: Mengembalikan set semua kunci dalam HashMap.
Set<String> keys = map.keySet();
values()
: Mengembalikan set semua nilai dalam HashMap.
Collection<Integer> values = map.values();
entrySet()
: Mengembalikan koleksi semua pasangan nilai kunci dalam HashMap.
Set<Map.Entry<String, Integer>> entries = map.entrySet();
Di atas adalah kaedah HashMap yang biasa digunakan. Anda boleh menyemak dokumen yang berkaitan untuk mendapatkan maklumat lanjut.
HashMap terutamanya menggunakan algoritma Hash dan tatasusunan untuk penyimpanan. Dalam HashMap, setiap pasangan nilai kunci sepadan dengan elemen dalam tatasusunan, yang dipanggil "baldi" atau "slot".
Nilai indeks tatasusunan dikira melalui algoritma Hash Setiap baldi menyimpan senarai terpaut yang menyimpan pasangan nilai kunci. Jika nilai indeks yang dikira oleh pasangan nilai kunci yang berbeza adalah sama, pasangan nilai kunci ini akan diletakkan dalam baldi yang sama dan disimpan dalam baldi dalam bentuk senarai terpaut Ini adalah kaedah penyelesaian konflik HashMap.
Prosedur tersimpan HashMap adalah seperti berikut:
Apabila menggunakan kaedah put
untuk menambah pasangan nilai kunci pada HashMap, ia akan berasaskan terlebih dahulu pada nilai hashCode
kekunci Kira kedudukan indeks tatasusunan. Kaedah khusus adalah untuk melaksanakan beberapa operasi pada nilai hashCode
untuk mendapatkan nilai indeks tatasusunan. Nilai indeks ini ialah kedudukan pasangan nilai kunci dalam tatasusunan.
Jika kedudukan dalam tatasusunan kosong, anda boleh terus menyimpan pasangan nilai kunci dalam kedudukan ini untuk melengkapkan operasi tambah.
Jika sudah ada pasangan nilai kunci di lokasi ini, maka anda perlu membandingkan kaedah equals
kunci untuk menentukan sama ada mahu mengemas kini nilai pasangan nilai kunci atau tambah pasangan nilai kunci yang baharu.
Apabila panjang senarai terpaut panjang, prestasi HashMap mungkin terjejas kerana keseluruhan senarai terpaut mungkin perlu dilalui semasa mencari.
Untuk tujuan ini, Java 8 memperkenalkan struktur data "Pokok Merah-Hitam", yang boleh menukar senarai terpaut kepada pepohon untuk meningkatkan prestasi. Jika digunakan dalam persekitaran berbilang benang, harus diingat bahawa keselamatan bukan benang HashMap mungkin membawa kepada pengecualian. Jika anda perlu menggunakan HashMap dalam persekitaran berbilang benang, anda boleh menggunakan kaedah ConcurrentHashMap atau Collections.synchronizedMap untuk mencapai keselamatan benang.
Atas ialah kandungan terperinci Bagaimana untuk menukar semua nilai dalam Peta Java kepada jenis String. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!