我只是使用Collections.synchronizedMap(map);
同步HashMap,然后向地图添加值,如下所示。在第二个场景中,我已经将键和值添加到地图中,然后我正在进行同步以映射对象。但我没有发现输出有任何差异。
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class SyncHashMap {
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<Integer, String>();
map = Collections.synchronizedMap(map);
map.put(10, "ten");
map.put(20, "twenty");
map.put(30, "thirty");
map.put(40, "forty");
map.put(50, "fifty");
System.out.println(map);
}
}
输出:
{50=fifty, 20=twenty, 40=forty, 10=ten, 30=thirty}
在另一种情况下:
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class SyncHashMap {
public static void main(String[] args) {
Map<Integer,String> map = new HashMap<Integer, String>();
map.put(10, "ten");
map.put(20, "twenty");
map.put(30, "thirty");
map.put(40, "forty");
map.put(50, "fifty");
map = Collections.synchronizedMap(map);
System.out.println(map);
}
}
输出:
{50=fifty, 20=twenty, 40=forty, 10=ten, 30=thirty}
这些输出之间是否有任何差异。否则任何特定方式在使用时找到synchronizedMap方法的差异。需要一些澄清。