static HashMap<Integer, String> names = new HashMap<Integer, String>();
static Scanner in = new Scanner(System.in);
public static void main(String[] args) {
int i = 0;
while (in.hasNext())
s = in.nextLine();
for (int j = 0; j < s.split(" ").length; j++) {
names.put(i, s.split(" ")[j]);
}
i++;
}
我试图读取输入的每一行并根据空格将其拆分,然后将每个元素分别分配给相同的哈希键。
Ex 输入
john joe bob
james
henry george
应该像这样进入 HashMap
1: john
1: joe
1: bob
2: james
3: henry
3: george
当我完成输入后,退出循环的最佳方法是什么?
最佳答案
映射是一种键/值集合,其中每个键都链接到一个值。在您的情况下,您似乎希望每个键有多个值 - 一个选项如下所示,其中每个键(行号)映射到名称列表:
Map<Integer, List<String>> names = ...;
要填充 map ,您需要为每一行创建一个列表,例如:
public static void main(String[] args) {
int i = 0;
while (in.hasNext()) {
String s = in.nextLine();
names.put(i, Arrays.asList(s.split(" ")));
i++;
}
}
ps:我认为 while
行末尾缺少的括号是一个拼写错误。
关于java - 尝试将每个输入行分成组并存储在 HashMap 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34697788/