Rumah >Java >javaTutorial >Dapatkan peta disegerakkan daripada Java TreeMap
Untuk mendapatkan Peta yang disegerakkan daripada TreeMap di Java, kita boleh menggunakan kaedah terbina dalam "synchronizedMap()" antara muka Koleksi. Di sini, TreeMap ialah kelas yang digunakan untuk melaksanakan antara muka NavigableMap. Ia menyimpan elemen peta dalam struktur pokok. Ia menyediakan alternatif yang cekap untuk menyimpan pasangan nilai kunci dalam susunan yang disusun. Secara lalai, TreeMap tidak disegerakkan. Dalam artikel ini, kami akan menerangkan keperluan penyegerakan dan pelaksanaan praktikalnya melalui program sampel.
Treemap tidak selamat untuk benang, yang bermaksud apabila kami melaksanakannya dalam persekitaran berbilang benang, berbilang benang boleh mengakses dan mengubah suainya secara serentak tanpa sebarang penyelarasan. Ini boleh membawa kepada ketidakkonsistenan data dan tingkah laku unsur yang tidak dijangka. Ia juga boleh menjejaskan hasil operasi.
Oleh itu, kita perlu menggunakan synchronizedMap() untuk menyegerakkan akses kepada elemen TreeMap. Kaedah ini mencipta pembalut di sekeliling TreeMap asal dan menguncinya apabila benang cuba mengakses atau mengubah suainya.
synchronizedMap() ialah kaedah statik kelas Koleksi yang mengambil contoh koleksi TreeMap sebagai parameter dan mengembalikan Peta yang disegerakkan daripadanya.
Collections.synchronizedMap(instanceOfTreeMap);
Di sini, "Koleksi" ialah kelas antara muka koleksi.
Sintaks umumTreeMap adalah seperti berikut -
TreeMap<TypeOfKey, TypeOfValue> nameOfMap = new TreeMap<>();
Mula-mula, import pakej "java.util" untuk mendayakan kelas TreeMap.
Kemudian, buat TreeMap di mana kunci adalah jenis String dan nilainya adalah Jenis integer.
Gunakan kaedah terbina dalam "put()" untuk menyimpan beberapa elemen dalam koleksi
Sekarang, segerakkan elemen ini dan simpannya dalam pembolehubah jenis Peta.
Akhir sekali, cetak peta disegerakkan baharu dan keluar.
Contoh berikut menggambarkan cara menggunakan synchronizedMap() untuk menyegerakkan TreeMap yang ditentukan.
import java.util.*; public class Maps { public static void main(String[] args) { TreeMap<String, Integer> cart = new TreeMap<>(); // Adding elements in the cart map cart.put("Butter", 5); cart.put("Milk", 10); cart.put("Rice", 20); cart.put("Bread", 2); cart.put("Peanut", 2); // print synchronized map from TreeMap Map mapSynched = Collections.synchronizedMap(cart); System.out.println("Synchronized Map from TreeMap: " + mapSynched); } }
Synchronized Map from TreeMap: {Bread=2, Butter=5, Milk=10, Peanut=2, Rice=20}
Mula-mula, import pakej "java.util" untuk mendayakan kelas TreeMap.
Kemudian, buat TreeMap di mana kuncinya adalah jenis String dan nilainya adalah jenis Integer
Gunakan kaedah terbina dalam "put()" untuk menyimpan beberapa elemen dalam koleksi
Sekarang, gunakan kaedah synchronizedMap() untuk menyegerakkan elemen ini dan menyimpannya dalam koleksi Peta baharu.
Akhir sekali, tentukan blok penyegerakan. Dalam blok ini, item dicetak menggunakan kaedah "keySet()" menggunakan gelung untuk setiap.
Dalam contoh berikut, kami akan menggunakan kaedah synchronizedMap() dan blok synchronized untuk menyegerakkan TreeMap yang diberikan
import java.util.*; public class Maps { public static void main(String[] args) { TreeMap<String, Integer> cart = new TreeMap<>(); // Adding elements in the cart map cart.put("Butter", 5); cart.put("Milk", 10); cart.put("Rice", 20); cart.put("Bread", 2); cart.put("Peanut", 2); // creating new synchronized Map Map<String, Integer> mapSynched = Collections.synchronizedMap(cart); System.out.println("Synchronized Map from TreeMap: " ); // printing synchronized map from TreeMap synchronized (mapSynched) { for (String unKey : mapSynched.keySet()) { System.out.println("Item: " + unKey + ", Quantity: " + cart.get(unKey)); } } } }
Synchronized Map from TreeMap: Item: Bread, Quantity: 2 Item: Butter, Quantity: 5 Item: Milk, Quantity: 10 Item: Peanut, Quantity: 2 Item: Rice, Quantity: 20
Penyegerakan ialah proses mewujudkan penyelarasan dan memastikan komunikasi yang betul antara dua atau lebih aktiviti. Memandangkan TreeMap di luar penyegerakan boleh membawa kepada ketidakkonsistenan data, kami perlu menyegerakkannya. Kaedah terbina dalam "Collections.synchronizedMap()" ialah cara yang lebih mudah untuk melaksanakan tugas ini.
Atas ialah kandungan terperinci Dapatkan peta disegerakkan daripada Java TreeMap. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!