我正在考虑有一个可用于值检查的查找映射。
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);
}
这是个好方法吗?还有其他方法吗?或有什么建议吗?请指教。谢谢