创建从字符串键到数字键的映射:
Map keyMap = new HashMap();
keyMap.put("a", o);
// etc然后创建一个对象列表,其中MyObject是值类型:
List theList = new ArrayList();按整数访问:
MyObject obj = theList.get(0);按字符串访问
MyObject obj = theList.get(keyMap.get("a"));这需要维护您的密钥数据结构,但允许从一个数据结构访问您的值。
如果你愿意,你可以封装在一个类中:
public class IntAndStringMap {
private Map keyMap;
private List theList;
public IntAndStringMap() {
keyMap = new HashMap();
theList = new ArrayList();
}
public void put(int intKey, String stringKey, V value) {
keyMap.put(stringKey, intKey);
theList.ensureCapacity(intKey + 1); // ensure no IndexOutOfBoundsException
theList.set(intKey, value);
}
public V get(int intKey) {
return theList.get(intKey);
}
public V get(String stringKey) {
return theList.get(keyMap.get(stringKey));
}
}