📜  从Java TreeMap 获取同步地图

📅  最后修改于: 2022-05-13 01:54:34.527000             🧑  作者: Mango

从Java TreeMap 获取同步地图

TreeMap是Java集合框架的一部分。 Java TreeMap 包含基于键的值。它实现了 NavigableMap 接口并扩展 AbstractMap 类。它提供了一种按排序顺序存储键值对的有效方法。 Java TreeMap 仅包含唯一元素。它不能有一个空键,但可以有多个空值。 TreeMap 维护元素的升序。同步 意味着控制多个线程对任何共享资源的访问。同步资源一次只能被一个线程访问。 Java TreeMap 不是同步的,我们必须显式同步它才能在线程环境中使用它。

TreeMap 可以使用Collections.synchronizedMap()进行同步 方法。 Collections 类的synchronizedMap()方法将必须同步的 Map 作为参数并返回线程安全的同步 Map。 Java.util.Collections类的synchronizedMap()方法用于返回由指定映射支持的同步(线程安全)映射。为了保证串行访问,对支持映射的所有访问都通过返回的映射完成是至关重要的。

句法:

public static  Map synchronizedMap(Map m)

参数:此方法将地图作为要“包装”在同步地图中的参数。

返回值:此方法返回指定地图的同步视图

执行:

例子

Java
// Java program to demonstrate
// synchronization of TreeMap
 
// Importing all classes from
// java.util package
import java.util.*;
 
// Class
public class GFG {
 
    // Main driver method
    public static void main(String[] args) throws Exception
    {
 
        // Try block to check if any exception occurs
        try {
 
            // Step1: Creating a TreeMap object
            // Declaring object of string type
            TreeMap treeMap
                = new TreeMap();
 
            // Step2: Adding elements into the above Map
            // Custom inputs
            treeMap.put("1", "Welcome");
            treeMap.put("2", "To");
            treeMap.put("3", "Geeks");
            treeMap.put("4", "For");
            treeMap.put("5", "Geeks");
 
            // Printing all elements of the above Map object
            System.out.println("Map : " + treeMap);
 
            // Synchronizing the map using
            // synchronizedMap() method of Collection class
            Map sMap
                = Collections.synchronizedMap(treeMap);
 
            // Printing the Collection
            System.out.println("Synchronized map is : "
                               + sMap);
        }
 
        // Catch block to handle the exceptions
        catch (IllegalArgumentException e) {
 
            // Displaying and printing the exception
            System.out.println("Exception thrown : " + e);
        }
    }
}



输出
Map : {1=Welcome, 2=To, 3=Geeks, 4=For, 5=Geeks}
Synchronized map is : {1=Welcome, 2=To, 3=Geeks, 4=For, 5=Geeks}