如何为项目创建属性列表? LinkedList,ArrayList,Files?

时间:2012-07-10 17:30:06

标签: java

我不确定这是否是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等等,但似乎无法找到最佳方法。什么是最好的方法,所以我可以进一步阅读这个主题?

2 个答案:

答案 0 :(得分:1)

EnumsHashMap可以让你这样做:

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