我正在创建Dictionary和这样的ArrayList。
Dictionary testDict, testDict2 = null;
ArrayList al = new ArrayList();
testDict.put ("key1", dataVar1);
testDict.put ("key2", dataVar2);
testDict2.put ("key1", dataVar1);
testDict2.put ("key2", dataVar2);
al.add(testDict);
al.add(testDict2);
现在我的问题是,如何访问词典中的数据?例如,我如何使用al?
从testDict中检索key1非常感谢提前:)
答案 0 :(得分:2)
也许这个:
al.get(0).get("key1");
答案 1 :(得分:2)
由于testDict
位于第0位(ArrayList
的第一个元素),您可以使用get(0).
检索它。
示例:
Dictionary firstDict = (Dictionary) al.get(0);
Object key1Data = firstDict.get("key1");
Ps:如果允许您使用它,泛型可以极大地改善您的代码。
另一点是......为什么Dictionary
而不是Map?
答案 2 :(得分:2)
正如您可以阅读Java Docs所有Dictionary对象(请注意,例如Hashtable就是其中之一),有一个方法Object get(Object key)
来访问它的元素。在您的示例中,您可以像key1
一样访问textDict
中条目// first access testDict at index 0 in the ArrayList al
// and then it's element with key "key1"
al.get(0).get("key1");
的值:
Dictionary
请注意,您无法初始化Dictionary对象,并且Hashtable
类是抽象的。因此,您可以使用HashMap
(或者,如果您不需要使用同步访问权限,请使用更快的testDict = new Hashtable<String, String>();
),例如:
dataVar
确保使用正确的泛型类型(第二个类型必须是{{1}}所具有的类型)
答案 3 :(得分:0)
不确定为什么要保留这样的词典,但你可以简单地遍历你的词典。
public Data getData(String key) {
for(Dictionary dict : al) {
Data result = dict.get(key);
if(result != null)
return result;
}
return null;
}