我设法制作了一个程序,可以从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);


带有类别列表的产品是您可以在内部处理数据(验证等)

10-04 20:07