将数据动态加载到HashMap中

时间:2016-05-18 16:57:08

标签: java csv hashmap loaddata

我正在从CSV文件中读取数据并希望将其存储到hashMap中。有3列,所有这些都是字符串。我正在使用此代码:

listDataHeader = new ArrayList<String>();
    listDataChild = new HashMap<String,List<String>>();

    InputStream inputStream = getResources().openRawResource(R.raw.photographers);
    CSVReader csv = new CSVReader(inputStream);
    List<String[]> data = csv.read();
    List<String> info = new ArrayList<String>();

    for(String[] children : data){
        info.add(children[1]);
        info.add(children[2]);
    }

    //fill data for the child

    for (String[] line : data) {
        listDataHeader.add(line[0]);
        listDataChild.put(listDataHeader.get(0),info);
    }

listdataChild应该保留CSV中第2和第3列的信息。目前,它不止一次加载该信息。我欢迎任何想法,谢谢!

1 个答案:

答案 0 :(得分:1)

只需一次迭代即可完成此操作。

for (String[] line : data) {
    List<String> info = new ArrayList<String>();
    info.add(line[1]);
    info.add(line[2]);
    listDataChild.put(line[0], info);
}

在这里,您将遍历csv的各行并创建 new 列表,并将第二列和第三列添加到该列表中,并将该列表添加到地图中。