我设法制作了一个程序,可以从excel文件中读取数据并将其存储在mysql的表中。我的程序读取每个文件的第一行,为表创建字段,并将其余数据作为值存储在每一列中。只是因为那是通过编程方式发生的,所以我选择使用LinkedHashMap读取所有值。一切正常。但是,当我完成并测试程序后,我的控制台出现错误。在尝试解决它的几天之后,我在LinkedHashMap的文档中读到“如果该映射先前包含该键的映射,则将替换旧值”。我的洞程序立刻被破坏了。原因是在我的文件中,某些列中的值相同。
有人知道是否有办法解决这个问题,还是我必须从头开始程序?既然我没有时间这样做,您能帮我找到办法吗?
先感谢您!
最佳答案
这就是Google地图的工作方式,您在这里使用了错误的容器,您可能想要一个包含自定义类的列表或地图列表:
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);
带有类别列表的产品是您可以在内部处理数据(验证等)