java - hashmap,java8,空/空检查
问题描述
我有一张地图如下:
private Map<String, Object> map = new HashMap<>();
此映射包含其键值对:
关键 价值
myKey
-> value
value
-> Another value
如上所示,这个映射要么是空的,要么有键值对,包括上面的键值(myKey
和value
作为value
下一个元素的键)。
我想检查这张地图是否:
是否为空
有myKey
,value
如果有,有Another value
。我的代码有很多if
else
所以想用更好的方法来避免Another value
if (map.isEmpty()) {
if (map.get(myKey) != null || StringUtils.isNotBlank(map).get(myKey).toString())) {
String nextKey = map.get(myKey).toString();
if (StringUtils.isNotBlank(nextKey) && map.get(nextKey) != null
&& StringUtils.isNotBlank(map.get(nextKey).toString())) {
String finalValue = map.get(nextKey).toString();
}
}
} else {
flag = true;
}
解决方案
您可以使用 Map 的containsKey
方法来避免多个if
Map<String,String> map = new HashMap<>();
if(map.containsKey(myKey) && StringUtils.isNotBlank(map.get(myKey))
&& map.containsKey(map.get(myKey))) {
flag=false;
} else {
flag=true
}
上述代码的更简化版本是
flag = StringUtils.isBlank(map.get(myKey)) || !map.containsKey(map.get(myKey));
推荐阅读
- rdf - 使用 SHACL 验证 RDF 时如何忽略导入图中的节点?
- android - 是否可以在 iOS 和/或 Android 上的 WebView 上分层其他 Xamarin.Forms 控件?
- ios - 在 iOS 中使用 RSSI 访问 wifi 信息
- animation - JavaFX将显示分数的文本更改为动画并设置回分数
- python - python 中由 random.randint() 生成的随机数的方差增加
- python - python DataFrame将dict列拆分为多列
- mysql - 节点 js Sequelize 与 MySQL 日期格式问题
- javascript - SailsJS 自定义 API 挂钩 - 子域
- javascript - 使用 Fetch API 时如何等待 http 请求完成
- ios - 如何在 Objective-C 中重新定义枚举?