gpt4 book ai didi

java - TreeMap 中重复键的值会发生什么情况

转载 作者:行者123 更新时间:2023-12-01 11:34:48 24 4
gpt4 key购买 nike

我有一个文本文件,该文件被读入树形图中。文本文件包含学生列表及其分数。

Harry 10
Sam 8
John 7
Harry 8
Sam 9

我尝试编写这段代码,它读取一个文件,将其存储在 TreeMap 中并将其显示在控制台上。

Scanner scanner = new Scanner(new FileReader("marks.txt"));
TreeMap<String, Integer> students = new TreeMap<String, Integer>();
while (scanner.hasNextLine()) {
String[] columns = scanner.nextLine().split("\\s+");
students.put(columns[0], Integer.parseInt(columns[1]));
}
System.out.println("Alpha Order");
// Iterate over TreeMap
for (String key : students.keySet()) {
System.out.println(key + " :: " + students.get(key));
}

执行代码后我在控制台上得到的输出是

Alpha Order
Harry :: 10
John :: 7
Sam :: 9

我需要其他值来进行进一步计算。是否有可能有像

这样的输出
Harry :: 10 8
John :: 7
Sam :: 9 8

最佳答案

What happens to the values of duplicate keys in a tree map

重复键的旧值将被替换。如果 Map发现键已经存在,则替换值。例如

"Harry" => 10

变成了

"Harry" => 8

is it possible to have an output like

是的,但您需要维护 List<Integer>作为你的值(value)。

而不是盲目地put设置键/值对,使用 containsKey 测试键是否已存在。如果 key 已经存在,get列表和add对它的值(value)。如果该 key 尚不存在,则创建一个新的 List ,将值添加到其中,然后 put键/值写入 Map .

例如

"Harry" => [10]

"Harry" => [10, 8]

关于java - TreeMap 中重复键的值会发生什么情况,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30113760/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com