树状地图的同步地图树图不是线程安全的,这意味着当我们在多线程环境中实现它时,多个线程可以同时访问和修改它,而无需任何协调。这可能会导致数据不一致和元素的意外行为。它还可能影响操作的结果。
因此,我们需要使用synchronizedmap()来同步对treemap元素的访问。此方法在原始 treemap 周围创建一个包装器,并在线程尝试访问或修改它时锁定它。
synchronizedmap() 是 collections 类的静态方法,它将 treemap 集合的实例作为参数并从中返回一个同步的 map。
语法collections.synchronizedmap(instanceoftreemap);
这里,“collections”是集合接口的一个类。
treemap 的一般语法如下 -
语法treemap<typeofkey, typeofvalue> nameofmap = new treemap<>();
方法首先,导入“java.util”包以启用 treemap 类。
然后,创建一个 treemap,其中键为 string 类型,值为整数类型。
使用内置方法“put()”在集合中存储一些元素
现在,同步这些元素并将它们存储在 map 类型的变量中。
最后,打印新的同步地图并退出。
示例 1下面的示例说明了如何使用synchronizedmap() 来同步指定的 treemap。
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}
方法首先,导入“java.util”包以启用 treemap 类。
然后,创建一个 treemap,其中键为 string 类型,值为 integer type
使用内置方法“put()”在集合中存储一些元素
现在,使用synchronizedmap()方法同步这些元素并将它们存储在新的map集合中。
最后,定义一个同步块。在此块内,采用 for-each 循环使用“keyset()”方法打印项目。
示例2在下面的示例中,我们将使用synchronizedmap()方法和一个synchronized块来同步给定的treemapimport 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: 2item: butter, quantity: 5item: milk, quantity: 10item: peanut, quantity: 2item: rice, quantity: 20
结论同步是在两个或多个活动之间建立协调并确保正确通信的过程。由于treemap不同步可能会导致数据不一致,因此我们需要对其进行同步。内置方法“collections.synchronizedmap()”是执行此任务的更方便的方法。
以上就是从 java treemap 获取同步地图的详细内容。
