我目前正在尝试将一个选定的Word从我的HashMap打印到屏幕。第一次输出正确,但每次给出第一个值后,任何人都可以看到我做错了吗?
public void searchIndex() throws FileNotFoundException, IOException {
Scanner sc = new Scanner(System.in);
System.out.println("Please Enter a word to search");
String entry = sc.nextLine().toLowerCase();
String key = null;
String value = null;
Set<Integer> indices = null;
for (String search : index.keySet()) {
for (WordEntry values : index.values()) {
key = search;
value = values.getDefinition();
indices = values.getIndices();
}
}
System.out.println("Word " + key + " And " + value + indices);
System.out.println("Do you wish to continue searching,'Yes' if so");
String answer = sc.nextLine();
if (answer.equalsIgnoreCase("Yes")) {
searchIndex();
输出: 请输入要搜索的单词
黄
字黄和颜色
您是否希望继续搜索,“是”,如果是这样
是
请输入要搜索的字词
开放
字黄和颜色
您是否希望继续搜索,“是”,如果是这样
答案 0 :(得分:0)
在这个块中:
for (String search : index.keySet()) {
for (WordEntry values : index.values()) {
key = search;
value = values.getDefinition();
indices = values.getIndices();
}
}
您无条件地设置key
,value
和indices
的值。
这意味着无论您输入什么,它都将始终设置:
key
到index
的最后一个键。value
到index
。indices
到index
中最后一个值的最后一个索引。而且,我猜黄色是index
中的最后一项。因此,你得到了所说的输出。
我认为您需要根据输入的某些条件设置key
,value
和indices
的值。