gpt4 book ai didi

java - 有没有办法处理 LinkedHashMap 中相同的值?

转载 作者:行者123 更新时间:2023-12-01 04:39:32 25 4
gpt4 key购买 nike

我已经成功编写了一个程序,可以从 Excel 文件中读取数据并将它们存储在 mysql 的表中。我的程序读取每个文件的第一行,创建表的字段,并将其余数据存储为每列中的值。正是因为这种情况以编程方式发生,所以我选择使用 LinkedHashMap 读取所有值。一切正常。但是当我完成并测试我的程序时,我的控制台中出现错误。经过几天的寻找,当我试图解决它时,我在 LinkedHashMap 的文档中读到“如果映射以前包含键的映射,则旧值将被替换”。我的洞程序立刻就被毁掉了。原因是在我的文件中,某些列中的值相同。有人知道是否有办法解决这个问题,或者我必须从头开始我的程序?由于我的时间很少,您能帮我找到方法吗?

提前谢谢您!

最佳答案

这就是 map 的工作方式,您在这里使用了错误的容器,您可能需要一个带有自定义类的列表或列表的 map :

public class Data
{
private String d1;
private String d2;

public Date (String d1, String d2)
{
...
}
public parsedDataType getD1()... //might be the string, or an number, or something else
...
}

public void read()
{
...
List<Data> data = new LinkedList<>();
...
Data d = new Data(d1,d2);
data.add(d);
}

或者您可以按照 svz 的建议使用列表映射:

Map<String,List<String>> data = new HashMap<>();
List<String> list = new LinkedList<>();
list.add(d1);
list.add(d2);
data.put(myKey,list);

类列表的优点是您可以在内部处理数据(验证等)

关于java - 有没有办法处理 LinkedHashMap 中相同的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16807543/

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