Я не знаю, почему не работает со мной. У меня есть пустые ключи на карте, но я не могу их поймать.Java: найти пустой ключ на карте:
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
Я думаю, что этот ключ является гост)
"У меня есть пустые ключи в карте, но я могу их поймать.".. - это предложение не имеет смысла. Что вы пытаетесь сделать, и что происходит вместо того, что вы пытаетесь сделать? – user2357112
Можете ли вы указать, в чем проблема? что не работает для вас? что вы ожидаете? как вы помещаете данные? – ochi
Из редактирования, кажется, он не может поймать/найти ключи, которые являются пустыми строками на его карте. – Sentry