在单个键的映射中存储多个值

use*_*241 3 java map

我在c:中有以下名为ght.txt的文件,它包含以下数据

Id|ytr|yts
1|W|T
2|W|T
3|W|T
Run Code Online (Sandbox Code Playgroud)

现在问题是这些列的位置(Id | ytr | yts)也没有按顺序意味着它们也可以重新洗牌.

Id|ytr|dgfj|fhfjk|fgrt|yts
Run Code Online (Sandbox Code Playgroud)

或者他们可以像..

Id|wer|ytr|weg|yts
Run Code Online (Sandbox Code Playgroud)

所以我做了以下方式,并在java中读取它们,如下所示

String[] headers = firstLine.split("|");
int id, Ix, Ixt, count = 0;

for(String header : headers) {
    if(header.equals("Id")) {
        idIx = count;
    }elseif (header.equals("Ix")) {
        Ixt = count;
    } elseif (header.equals("Ixt")) {
        Ixt = count;
    }
    count++;
}
Run Code Online (Sandbox Code Playgroud)

现在我需要将它们存储在一个地图中以防止id我将获得列ytr和yts的值,所以在map中应该有单个键但是反对该键值可能是多个请告知如何在地图中存储这样的方式

And*_*rup 6

使用Map<Integer,List<String>>听起来像一个可行的第一种方法.

因为听起来你的价值是结构化的,所以创建一个值类可能更好,例如.Map<Integer, YourValueClass>哪里

class YourValueClass
{
    String ix;
    String ixt;

    // constructor, getters and setters
}
Run Code Online (Sandbox Code Playgroud)

基本上,你应该考虑类/对象 - 不要拒绝对象 :-)

干杯,