gpt4 book ai didi

java - 当值位于 ArrayList 中时,如何继续向已存在的键添加值?输入来自扫描仪以创建 TreeMap

转载 作者:太空宇宙 更新时间:2023-11-04 11:03:56 25 4
gpt4 key购买 nike

我正在尝试接收来自用户的输入,其中每行必须包含一些文本(一个键),后跟一个制表符,后跟一个 double 文字(一个值),后跟一个换行符。

如果允许用户不断输入相同的键,然后输入 /t,然后输入不同的值和 /n,我如何编写一个程序,不断将值添加到树形图中的相同键?

每个键都有一个ArrayList,这就是我陷入困境的地方,因为我不知道如何不断添加到不同行/键的数组列表中。

这是我到目前为止所拥有的:

    TreeMap<String, ArrayList<Double>> categoryMap = new TreeMap<>();

Double val = 0.0;
String inputKey = "";

System.out.println("Welcome, please enter text");
Scanner scn = new Scanner(System.in);
dataSource = scn;

try
{
// adds all words of input to a string array
while (dataSource.hasNextLine())
{
ArrayList<Double> valueMap = new ArrayList<>();
inputKey = dataSource.next();

val = dataSource.nextDouble();
valueMap.add(val);

if (categoryMap.get(inputKey) == null)
{
categoryMap.put(inputKey, valueMap);
}
else
{
categoryMap.put(inputKey, valueMap);
}

dataSource.nextLine();
}
}
// Exception if no lines detected and shows message
catch (IllegalArgumentException lineExcpt)
{
System.out.println("No lines have been input: " + lineExcpt.getMessage());
}
finally
{
scn.close();
}

return categoryMap;

我对 Java 非常陌生,只有大约一个月的经验。

最佳答案

如果您使用 Java 8, map 具有 computeIfAbsent 方法。

List<Double> addTo = map.computeIfAbsent(key, ArrayList::new);

关于java - 当值位于 ArrayList 中时,如何继续向已存在的键添加值?输入来自扫描仪以创建 TreeMap,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46624122/

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