我不确定这是否是stackoverflow的正确问题,但无论如何我都会尝试。
我正在尝试模拟一个生产系统,其中几个部件进入一个系统,以便在不同的机器上运行。我试图保持简单,但要继续前进,我需要创建某种列表,允许我将属性和值索引到“对象”,如下所示:
Machine [num][type][avg_time][posx][posy][state]
Part [num][type][order][state]
这样我就可以创建某种列表,允许我在任何给定时间检索属性,例如:
Machine [1][a][19][100][100][busy]
and Machine[posx] would retrieve the saved value for it
我还在阅读ArrayLists,LinkedLists等等,但似乎无法找到最佳方法。什么是最好的方法,所以我可以进一步阅读这个主题?
答案 0 :(得分:1)
Enums
和HashMap
可以让你这样做:
public enum Properties {
POSX, POSY, ...
}
Map<Properties, Value> machine = new HashMap<Properties, Value>();
设置值....
machine.put(Properties.POSX, 151); //if Value is of Integer class, perhaps
并检索值......
machine.get(Properties.POSX)
答案 1 :(得分:1)
上述问题指向集合,称为地图。
从下面选择一个,您会发现它更适合您的问题。
1。如果您希望属性处于排序顺序,请使用TreeMap。
2。如果您希望地图中的最快,请转到 HashMap。
3. 如果您希望地图线程安全,请转到 HashTable。
4. 对于线程安全,您还可以使用java.util.concurrent中的ConcurrentHashMap 封装
<强>例如强>
HashMap<Properties, Value> myMachine = new HashMap<Properties, Value>();