Java多线程环境中的查找映射

时间:2019-04-26 03:43:15

标签: java multithreading java.util.concurrent

我正在考虑有一个可用于值检查的查找映射。

private ConcurrentMap<String, Integer> name2IdMap;

........

public Integer fetchIdByName(String name) {
        if (name2IdMap == null) {
            List<Entity> entities = dao.listAll();
            Map<String, Integer> temp = entities.stream().collect(Collectors.toMap(Entity::getName, Entity::getId));
            name2IdMap = new ConcurrentHashMap<>(temp);
        }

        return name2IdMap.get(name);
    }

这是个好方法吗?还有其他方法吗?或有什么建议吗?请指教。谢谢

0 个答案:

没有答案