在不使用键的情况下在 LinkedHashMap 中插入值

Inserting values in LinkedHashMap without using the key

我有一个 CSV 格式的 table 数据。第一行包含所有列名(键),所有后续行都是记录(值),如下所示:

ID,Name,Contact,Address
1,Alex,987654321,CA USA
2,Bob,4489398,LA USA
3,Marley,7236487,Washington

我正在阅读此文件并尝试将记录作为键值对存储在 LinkedHashMap 中。这是我的代码,用于显示我正在尝试做的事情。我的问题作为注释写在代码中。

public static void readCSV() throws IOException {

    BufferedReader br = new BufferedReader(new FileReader("table.csv"));

    Map<String, ArrayList<String>> map = new LinkedHashMap<>();

    String line = br.readLine();
    String[] keys = line.split(",");

    /*insert all keys with a corresponding empty arraylist as value to store
    all values of a particular key. ie each arralist will contain all values
    of individual columns. Since it is a linkedhashmap, keys are stored in 
    same order as they appear in the csv file*/

    for (String key : keys) {
        map.put(key, new ArrayList<String>());
    }

    while((line = br.readLine())!=null){
        String[] values = line.split(",");

        for (String value : values) {

            /*here I want to get the arraylists sequentially to store value.
            I know the first value goes in the first arraylist, second goes
            to second arraylist and so on.

            Is there a way to do this without using the key here??
            */

        }
    }
}

您可以使用 Iterator 遍历 Map 的值:

while((line = br.readLine())!=null){
    String[] values = line.split(",");

    Iterator<ArrayList<String>> iter = map.values().iterator ();
    for (String value : values) {

        if (iter.hasNext()) {
            iter.next().add(value);
        }

    }
}