如何在Java中的Arraylist中访问字典数据?

时间:2012-03-07 19:10:06

标签: java dictionary arraylist

我正在创建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

非常感谢提前:)

4 个答案:

答案 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;
}