gpt4 book ai didi

java - 基于相同键对来自两个映射的值进行配对

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

给定以下两个映射,其值类型不同但键类型相同

Map<Key, Dog> indexedDogs =  Maps.uniqueIndex(dogs, keyGeneratorForDog);
Map<Key, Cat> indexedCats= Maps.uniqueIndex(cats, keyGeneratorForCat);

我想根据相同的键将值配对在一起:

Map<Dog, Cat> pairs = pair(indexedDogs, indexedCats);

Guava 中是否有 pair() 方法的实现,或者可以在现有 Guava 方法之上轻松构建的方法?

最佳答案

你可以编写自己的方法,这不会那么困难。首先,您需要获取这些映射中键的 Set 交集。您可以使用Set#retainAll()方法。

然后迭代该集合,并将两个映射中的值添加到每个键的新映射中,大致如下:

public Map<Dog, Cat> pair(Map<Key, Dog> indexedDogs, Map<Key, Cat> indexedCats) {
Set<Key> commonKey = indexedDogs.keySet();
commonKey.retainAll(indexedCats.keySet());

Map<Dog, Cat> map = new HashMap<>();

for (Key key: commonKey) {
map.put(indexedDogs.get(key), indexedCats.get(key));
}

return map;
}

关于java - 基于相同键对来自两个映射的值进行配对,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18858615/

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