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

Creating unique ArrayList for each Hash Map key value - Java

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

// Connections from inputs to gates (inputLabel, gateLabel)
INPUT(A, AND1)
INPUT(B, AND1)
INPUT(B, AND2)
INPUT(C, AND2)

我正在尝试创建一个以 gateLabel 为键的地图,并存储 inputLabel 信息。

即-


Key --- Info
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);

    }

我想知道是否有一种直观的方法来创建一个单独的 class,并像这样调用它:

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

为了得到每个gateLabel的唯一arrayList。因为目前 AND2 最终引用的是 A、B、B、C,而不仅仅是 B、C。

您应该能够使用 String->List 的 Map 来完成此操作。使用这种方法,每个门标签都将获得自己独特的电路标签列表。

示例代码:

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);
}