我一直在試圖讓我的小應用程序只打印散列表中的特定鍵(其中不包含'不想要的'字符串)。在我試圖這樣做的方法如下所示:僅打印散列圖中的特定鍵
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循環只檢查你的兩個不需要的字符串之一是否在鍵中。 例如如果(!黑shores.contains(「嗨」))sysout(...) 這就是爲什麼你有你的錯誤結果 – redc0w