为每个哈希映射键值创建唯一的ArrayList - Java

时间:2015-11-18 01:34:42

标签: java arraylist maps

我正在尝试阅读有关我正在制作的电路仿真器中每个门的输入的信息。输入连接的文件信息如下所示:

  

//从输入到门的连接(inputLabel,gateLabel)
  INPUT(A,AND1)
  INPUT(B,AND1)
  INPUT(B,AND2)
  INPUT(C,AND2)

我正在尝试使用keyLabel创建一个Map,并存储inputLabel信息。

即。 -

  


键---信息
        AND1 | A,B
        AND2 | B,C

我目前的代码是:

String inputCircuitLabel = params[0];
String inGateLabel = params[1];

    if(!iConnM.containsKey(inGateLabel)){

          inputCircuitLabels.add(inputCircuitLabel);
          iConnM.put(inGateLabel, inputCircuitLabels);              

    }

    else{

          inputCircuitLabels.add(inCircuitLabel);

    }

我想知道是否有一种直观的方式来制作一个单独的课程,并打电话给它:3-1

GateInput gi = new GateInput(inGateLabel);
ArrayList<GateInput> al;

为每个gateLabel获取一个唯一的arrayList。因为此时AND2最终引用A,B,B,C而不仅仅是B,C。

1 个答案:

答案 0 :(得分:1)

您应该可以使用Map of String-&gt; List完成此操作。使用这种方法,每个门标签将获得它自己唯一的电路标签列表。

示例代码:

Map<String, List<String>> iConnM = new HashMap<String, List<String>>();

String inputCircuitLabel = params[0];
String inGateLabel = params[1];

if (!iConnM.containsKey(inGateLabel)) {
    iConnM.put(inGateLabel, Arrays.asList(inputCircuitLabel));
} else {
    iConnM.get(inGateLabel).add(inputCircuitLabel);
}