我需要一个数据结构来存储与 变量 大小的字符串数组相关联的多个整数值。例如,这就是我所拥有的 -
ADDRESS INSTRUCTION
64 ADD R1, R0, R0
68 BGTZ R2, #32
. .
. .
. .
124 J #116
我想要获取 INSTRUCTION ,我认为应该根据 ADDRESS 值将其存储为字符串数组(不包括逗号和'#'),更像是一个键值对。这是我认为存储它应该是一个好主意或者如果你可以建议我在内存中表示这个更好的方法它会很棒。 (我使用Java编写代码。)
一个良好的数据结构( WHICH ?)有推理(为什么?)和详细解释( HOW ?)会非常好。
答案 0 :(得分:5)
<强> WHICH吗
Map<Integer, List<String>>
<强> WHY吗
如何吗
Map<Integer, List<String>> map = new HashMap<>();
map.put(64, new ArrayList<String>());
map.get(64).addAll("ADD", "R1", "R0", "R0");
<强> PROFIT!强>
答案 1 :(得分:2)
答案 2 :(得分:2)
地图Map<Integer, List<String>>
;这是自然形式。
答案 3 :(得分:2)
虽然我同意地图可行,但我认为它在语义层面上并不是一个干净的匹配。相反,我会选择一个具有List(或数组)命令和目标地址的自定义Object:
public class InstructionSet{
private int address;
private String[] commands;
// getters, setters
}
然后我会分配这些自定义对象的列表。
但如果您确实想要使用地图,我会使用Guava Multimap
答案 4 :(得分:1)
之前的答案给出了哪个以及一些为什么。对于如何,请参阅http://docs.oracle.com/javase/tutorial/collections/interfaces/map.html