再次强调,有ConcurrentHashMap, 没有CocurrentLinkedHashMap;

ConcurrentHashMap.newKeySet() is very close to map.keySet() itself

其实并没有太大区别


补充上面一个post的Java8中的stream可能有的问题: 因为是List才能带来的操作, e.g. ArrayList; 但是list本身并不是thread-safe的, 所以声明的list加入元素的时候可能并行操作中出现了线程安全问题:

1
2
3
4
5
List<Integer> list = new ArrayList<>();
...

list.add(e);
...

可能有问题, 而:

1
2
3
4
5
List<Integer> list = Collections.synchronizedList(new ArrayList<>());
...

list.add(e);
...

就没有问题。

详情link