java 编写多线程与集合的注意事项

1. org.springframework.cglib.core.CollectionUtils.filter 与  ConcurrentHashMap 结合使用时 直接使用会 values() 会导致 ConcurrentHashMap的内容自动为空。

 

正确的执行方法

 ConcurrentHashMap abc= new ConcurrentHashMap();
Collection list = CollectionUtils.filter(Arrays.asList(abc.values().toArray(new String[0])), new Predicate() {
            @Override
            public boolean evaluate(Object o) {
                String ter = (String) o;
                return ter == "99";
            }
        });

 

2.java 里提供静态的单例对像一定要加上final 标识,不然可能会出现对像值与预期不匹配的问题。

你可能感兴趣的:(java)