繁体   English   中英

存储Integer和array [String]值的好数据结构是什么?

[英]What would be a good data structure to store both Integer and array[String] values?

我需要一个数据结构来存储与可变大小的字符串数组相关联的多个整数值。 例如,这就是我所拥有的 -

ADDRESS   INSTRUCTION
64        ADD R1, R0, R0 
68        BGTZ R2, #32
.         .
.         .
.         .
124       J #116

在哪里我想获取一个INSTRUCTION ,我想应该根据ADDRESS值存储为一个字符串数组(不包括逗号和'#'),更像是一个键值对。 这是我认为存储它应该是一个好主意或者如果你可以建议我在内存中表示这个更好的方法它会很棒。 (我使用Java编写代码。)

一个好的数据结构( WHICH ?)与推理( 为什么 ?)和一个详细的解释( 如何 ?)将是非常好的。

哪一个?

Map<Integer, List<String>>

为什么?

  • 有用
  • 它在JDK中
  • 它已被我们周围数百万人使用

怎么样?

Map<Integer, List<String>> map = new HashMap<>();
map.put(64, new ArrayList<String>());
map.get(64).addAll("ADD", "R1", "R0", "R0");

利润!

  • WHICH - 使用Map界面
  • 为什么 - 隐式地将数据组织成键值对
  • 如何 - 使用实现Map接口的类(例如HashMap

地图Map<Integer, List<String>> ; 这是自然的格式。

虽然我同意地图可行,但我认为它在语义层面上并不是一个干净的匹配。 相反,我会选择一个具有List(或数组)命令和目标地址的自定义Object:

public class InstructionSet{
private int address;
private String[] commands;
// getters, setters
}

然后我将分配这些自定义对象的列表。

但是如果你想使用Map,我会选择Guava Multimap

之前的答案给出了哪些以及一些原因 有关方法 ,请参阅http://docs.oracle.com/javase/tutorial/collections/interfaces/map.html

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM