Я пытаюсь сделать мое небольшое приложение напечатать только определенные ключи внутри хэш-карты (из которых не содержат «нежелательных» строк). Путь, в котором я попытался это показано ниже:Печать только определенных ключей в hashmap
Map<String, Integer> items = new HashMap<String, Integer>();
String[] unwanted = {"hi", "oat"};
items.put("black shoes", 1);
items.put("light coat", 10);
items.put("white shoes", 40);
items.put("dark coat", 90);
for(int i = 0; i < unwanted.length; i++) {
for(Entry<String,Integer> entry : items.entrySet()) {
if(!entry.getKey().contains(unwanted[i])) {
System.out.println(entry.getKey() + " = " + entry.getValue());
}
}
}
Но он печатает это:
dark coat = 90
black shoes = 1
light coat = 10
white shoes = 40
black shoes = 1
Однако, он предназначен для печати это вместо того, чтобы (как это предполагается опустить ключи с «привет "и„овсяная“в них, которые нужно просто оставить :)
black shoes = 1
Я не знаю, почему я не в состоянии видеть ошибку, но, надеюсь, кто-то может помочь мне указать на это.
вы должны проверить, есть ли какая-либо из ваших нежелательных строк в каждом ключе до их распечатки ... в вашем решении yoor for loop проверяет, находится ли одна из ваших двух нежелательных строк в ключе. . if (! black shores.contains ("hi")) sysout (...) вот почему у вас неправильный результат – redc0w