java - 动态加载数据到HashMap中

标签 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 中第二列和第三列的信息。目前,它多次加载该信息。我欢迎任何想法,谢谢!

最佳答案

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

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

在这里,您将迭代 csv 的行并创建一个列表,并将第二列和第三列添加到该列表中,并将该列表添加到 map 中。

关于java - 动态加载数据到HashMap中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37305838/

相关文章:

使用的 Java 内存

java - 可以满足我的目的的最节省内存的数据结构是什么?

java - 在 JCodeModel 中定义枚举常量体

java - 将大数转换为字符串格式以进行比较

php - 错误 unicode 导出 csv 文件 - Laravel/Excel

python - 如何将 csv 中的行插入到 postgres+python 中现有表中的特定列?

java - 如何在RelativeLayout上创建长按菜单?

java - libGDX 客户端(服务器)客户端连接

python - 使用 matplotlib 按列绘制 csv 文件的图表

Java HashMap,一键多值,一张图