0

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

4

2 回答 2

1

上述问题指向称为Maps的集合。

从下面选择一个,您认为更适合您的问题。

1.如果您希望属性按排序顺序使用 TreeMap。

2.如果你想要最快的Map,那就选择HashMap。

3.如果你希望 Map 是线程安全的,那就选择HashTable。

4.为了线程安全,您还可以使用java.util.concurrent 包中的 ConcurrentHashMap 。

例如:

HashMap<Properties, Value> myMachine = new HashMap<Properties, Value>();
于 2012-07-10T18:26:25.457 回答
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)
于 2012-07-10T17:34:06.480 回答