gpt4 book ai didi

java - 在java中迭代期间存储多个匹配项

转载 作者:行者123 更新时间:2023-12-02 02:26:54 24 4
gpt4 key购买 nike

我正在尝试解决场景中的以下问题。

我的方法需要 ArrayList用户输入的,我还有一个 HashMap<String(keyword), ArrayList<String>(collection of responses)>在一个单独的类中。

我需要的是将用户输入与 HashMap 的关键字进行匹配,并存储相应的 ArrayList(从 HashMap 键返回)以供进一步操作。

问题是,在一场比赛之后,我不知道如何继续,因为我正在使用 for-each loop. 处理用户输入。在第一场比赛之后,我需要继续寻找第二场、第三场等等。

对于每个 HashMap 键匹配,我需要存储适当的 ArrayList - 所以我认为它应该如下所示:

ArrayList<String> match1 = hashMap.get(wordFromInput);
ArrayList<String> match2 = hashMap.get(wordFromInput2);

对我来说,这似乎应该有一个简单/明显的解决方案,但我还没有找到它。有什么建议吗?

最佳答案

您可以通过创建 HashMap 的 EntrySet 流来完成手头的任务,然后
filter , map collect 将结果放入列表中。

List<ArrayList<String>> resultSet = hashMap.entrySet()
.stream()
.filter(e -> inputArrayList.contains(e.getKey()))
.map(Entry::getValue)
.collect(Collectors.toCollection(ArrayList::new));

使用命令式方法:

List<ArrayList<String>> resultSet = new ArrayList<>();
for (Map.Entry<String, ArrayList<String>> entry : hashMap.entrySet())
{
if(inputArrayList.contains(entry.getKey())){
resultSet.add(entry.getValue());
}
}

关于java - 在java中迭代期间存储多个匹配项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47664181/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com