首页 > 解决方案 > 如何访问 ArrayListMultiMap 中的单个 ArrayList

问题描述

我想从 ArrayListMultiMap 中的 ArrayList 中获取一个条目。我正在使用 Google Guava ArrayListMultimap,每个键都与多个数组列表相关联。例如,对于 key1,我有 4 个数组列表,每个 ArrayList 包含 2 个条目。我需要能够访问一个特定的 ArrayList 并从那里获取一个条目,所以我的问题是我该怎么做?每次我尝试访问与键关联的值时,它都会打印所有 4 个数组列表,但我只需要一个。

Multimap<String, ArrayList<String>> wordAsKey = ArrayListMultimap.create();

for (DictionaryEntries dict : DictionaryEntries.values()) {
        ArrayList<String> list = new ArrayList<>();
        String key = dict.getKey();
        String partOfSpeech = dict.getPartOfSpeech();
        String definition = dict.getDefinition();
        list.add(partOfSpeech);
        list.add(definition);
        wordAsKey.put(key, list);
    }

ArrayList<String> resultList = new ArrayList<>();
resultList.add(wordAsKey.get(word).toString());
System.out.println(resultList);

印刷

[[[名词,一组页面。],[名词,以印刷或电子形式出版的书面作品。],[动词,安排某人在飞机上的座位。],[动词,安排某事在特定日期。]]]

但我只需要它打印[名词,一组页面。]

标签: java

解决方案


就这样吧——

ArrayList<String> list = (ArrayList<String>)wordAsKey.get(word);
String result = list.get(index);
System.out.println(result);

您可以检查List中是否存在特定的String,然后见下文;

if(list.contains("search")){...}

推荐阅读