Rumah > Java > javaTutorial > Dapatkan peta disegerakkan daripada Java TreeMap

Dapatkan peta disegerakkan daripada Java TreeMap

WBOY
Lepaskan: 2023-09-02 16:41:02
ke hadapan
1253 orang telah melayarinya

从 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.

Peta peta pokok disegerakkan

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.

Tatabahasa

Collections.synchronizedMap(instanceOfTreeMap);
Salin selepas log masuk

Di sini, "Koleksi" ialah kelas antara muka koleksi.

Sintaks umum

TreeMap adalah seperti berikut -

Tatabahasa

TreeMap<TypeOfKey, TypeOfValue> nameOfMap = new TreeMap<>();
Salin selepas log masuk

Kaedah

  • 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 1

Contoh berikut menggambarkan cara menggunakan synchronizedMap() untuk menyegerakkan TreeMap yang ditentukan.

< /h3>
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);
   }
}
Salin selepas log masuk

Output

Synchronized Map from TreeMap: {Bread=2, Butter=5, Milk=10, Peanut=2, Rice=20}
Salin selepas log masuk

Kaedah

  • 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.

Contoh 2

Dalam contoh berikut, kami akan menggunakan kaedah synchronizedMap() dan blok synchronized untuk menyegerakkan TreeMap< /p>

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));
         }
      }
   }
}
Salin selepas log masuk

Output

Synchronized Map from TreeMap:
Item: Bread, Quantity: 2
Item: Butter, Quantity: 5
Item: Milk, Quantity: 10
Item: Peanut, Quantity: 2
Item: Rice, Quantity: 20
Salin selepas log masuk

Kesimpulan

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!

sumber:tutorialspoint.com
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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan