我设法创建了一个程序,我将从excel文件中读取数据并将它们存储在mysql中的表中。我的程序读取每个文件的第一行,为表创建字段,并将其余数据存储为每列中的值。只是因为以编程方式发生这种情况我选择使用LinkedHashMap读取所有值。一切正常。但是当我完成并测试我的程序时,我的控制台出错了。在我试图解决它的几天寻找它之后,我在LinkedHashMap的文档中读到“如果地图以前包含该键的映射,则替换旧值”。我的洞计划立即被摧毁。原因是在我的文件中,我的值在某些列中是相同的。 有人知道是否有办法解决这个问题,或者我必须从头开始我的程序?既然我没有时间可以帮助我找到方法吗?
提前谢谢!
答案 0 :(得分:0)
这就是地图的工作原理,你在这里有错误的容器,你可能想要一个包含自定义类或列表地图的列表:
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:
的建议使用List of ListMap<String,List<String>> data = new HashMap<>();
List<String> list = new LinkedList<>();
list.add(d1);
list.add(d2);
data.put(myKey,list);
带有类列表的冒险是你可以在里面处理你的数据(验证等)。