📅  最后修改于: 2023-12-03 14:42:59.540000             🧑  作者: Mango
Java中的集合类提供了许多线程安全的实现,其中的synchronizedSortedMap()
方法可以创建一个同步的有序映射。本文将会介绍该方法的用法及示例。
synchronizedSortedMap()
方法的用法synchronizedSortedMap()
方法是Collections
类中的一个静态方法,它用来创建一个同步的有序映射。
方法签名如下:
public static <K,V> SortedMap<K,V> synchronizedSortedMap(SortedMap<K,V> m)
该方法传入一个SortedMap
类型的对象作为参数,返回一个经过同步处理的有序映射。
import java.util.Collections;
import java.util.Iterator;
import java.util.Map;
import java.util.SortedMap;
import java.util.TreeMap;
public class SynchronizedSortedMapExample {
public static void main(String[] args) {
// 创建一个有序映射
SortedMap<Integer, String> map = new TreeMap<>();
// 添加元素
map.put(3, "C");
map.put(1, "A");
map.put(2, "B");
// 输出未同步的映射
System.out.println("Unsynchronized Map: " + map);
// 创建一个经过同步处理的有序映射
SortedMap<Integer, String> synchMap = Collections.synchronizedSortedMap(map);
// 输出同步处理后的映射
System.out.println("Synchronized Map: " + synchMap);
// 迭代同步处理后的映射
synchronized (synchMap) {
Iterator<Map.Entry<Integer, String>> it = synchMap.entrySet().iterator();
while (it.hasNext()) {
Map.Entry<Integer, String> entry = it.next();
System.out.println("Key: " + entry.getKey() + ", Value: " + entry.getValue());
}
}
}
}
代码解释:
TreeMap
类型的有序映射,并添加三个元素。Collections
的synchronizedSortedMap()
方法创建一个经过同步处理的有序映射。synchronized
关键字对同步处理后的映射进行迭代。可以保证多线程的访问安全。输出结果:
Unsynchronized Map: {1=A, 2=B, 3=C}
Synchronized Map: {1=A, 2=B, 3=C}
Key: 1, Value: A
Key: 2, Value: B
Key: 3, Value: C
以上便是synchronizedSortedMap()
方法的用法及示例。综合运用Java中的集合类函数,可以更好的完成多线程的开发。