【发布时间】:2014-12-11 21:51:47
【问题描述】:
我不知道为什么不适合我。我在地图中有一个空键,但我无法抓住它们。
Map<String, Long> map = new TreeMap<>();
//put data
map.entrySet().stream().forEach(e -> {
if (e.getKey().equals("") || e.getKey().equals(" ") || e.getKey() == "" || e.getKey() == " ") {
map.remove(e.getKey(), e.getValue());
}
});
编辑: 我做了一个价值测试:
map.entrySet().stream() .forEach(e -> {
if (e.getValue() == 133835) {
System.out.println("key empty: " + e.getKey().isEmpty());
System.out.println("key: >" + e.getKey() + "<");
System.out.println("val: " + e.getValue());
}
});
map = map.entrySet().stream().filter(
p -> !"".equals(p.getKey().trim())).
collect(Collectors.toMap(Map.Entry::getKey, Map.Entry::getValue));
map.entrySet().stream() .forEach(e -> {
if (e.getValue() == 133835) {
System.out.println("key empty: " + e.getKey().isEmpty());
System.out.println("key: >" + e.getKey() + "<");
System.out.println("val: " + e.getValue());
}
});
结果是:
key empty: false
key: ><
val: 133835
key empty: false
key: ><
val: 133835
我觉得这把钥匙很牛)
【问题讨论】:
-
"我在地图中有一个空键,但我可以抓住它们。" - 这句话毫无意义。你想要做什么,正在发生什么而不是你想要做什么?
-
您能具体说明问题所在吗?什么不适合你?你期望发生什么?你是怎么放数据的?
-
从编辑来看,他似乎无法在他的地图中捕捉/找到空字符串的键。
-
对不起这个错误,我把它改成了“不能”
-
显然不是空的。弄清楚里面有什么——钥匙是从哪里来的。
标签: java collections map