我一直在试图让我的小应用程序只打印散列表中的特定键(其中不包含'不想要的'字符串)。在我试图这样做的方法如下所示:仅打印散列图中的特定键
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