作者:顺丰-03_457 | 来源:互联网 | 2023-02-13 09:10
我想知道是否有更有效的方法来做到这一点:
private void updateRelations(String relation, Gene gen) {
if (relations.containsKey(gen)) {
HashSet relatiOnDat= relations.get(gen);
relationDat.add(relation);
relations.put(gen, relationDat);
}
else {
HashSet relatiOnDat= new HashSet<>();
relationDat.add(relation);
relations.put(gen, relationDat);
}
}
Gene和Relation都是对象.所以我做的是检查是否已经存在Gene对象(具有相同的基因ID),如果是这种情况,我想将新发现的关系添加为值.如果不是,我只创建一个新的键值对.有没有更有效的方法来做到这一点?
1> Eran..:
在Java 8中,您可以使用computeIfAbsent
- 如果密钥不存在,它将添加与给定密钥关联的值Map
.
computeIfAbsent
返回the current (existing or computed) value associated with the specified key
,因此它将返回现有的HashSet
或新创建的HashSet
,您可以添加新元素:
relations.computeIfAbsent(gen, k -> new HashSet()).add(relation);