java - 通过Hashmap改进循环中的if语句
问题描述
我创建了一个循环,它通过我的HashMap
. 然后我检查当前键的名称 (A) 是否等于可能添加的键 (B)。密钥 A 和密钥 B 的哈希码在名称相同时不一定相等。因此,我通过将它们转换为字符串(覆盖 .equals())来检查它们是否相等。该代码正在运行,但大多数情况下都有一种更清洁、更简单的方法来执行此操作。
这是我当前的代码:
for (HashMap.Entry<Identifier, SetInterface<BigInteger>> entry : idAndSet.entrySet()) {
if (entry.getKey().isEqual(identifier)) {
factor = entry.getValue();
return factor;
}
}
解决方案
您可能会滥用该Map.computeIfPresent
方法。
factor = map.computeIfPresent(identifier, (k,v) -> v);
return factor;
该方法返回与指定键关联的值,如果没有则返回 null
推荐阅读
- unity3d - unity3D eulerAngles 平滑变化一轴
- algorithm - AVL树的平衡过程
- ios - 迅速从模型(networkClient)通知ViewController
- r - 如何ggplot列表列表
- sql - SQL SELECT 每个发票编号一行,其中没有成功状态
- maven - 詹金斯的 Maven 构建失败
- java - 我想将 Image 保存为 sqlite 的路径并检索它,然后在 ImageView 上显示
- ruby-on-rails - 关联has_many的belongs_to通过不被识别
- c - Printf 只返回零
- javascript - Node、Express 和 vue-cli