gpt4 book ai didi

java - 删除那些属性不在 commons-collections 集合中的属性

转载 作者:行者123 更新时间:2023-12-02 08:05:39 25 4
gpt4 key购买 nike

假设我有一个 foodGroupIds 集合和一个 food 集合。使用commons-collections,如何过滤掉不属于任何食物组的食物?

我可能走在正确的轨道上,但无法弄清楚要使用什么谓词。也许必须创建我自己的?

Collection<Long> ids = collect(
findGoodFoodGroups(),
invokerTransformer("getId"));

Collection<Food> food = getAllFood();
filter(food, transformedPredicate(
invokerTransformer("getFoodGroupId"),
?));

在 C# 中,这将是这样的:

var ids = FindGoodFoodGroups().Select(x => x.Id);
var goodFood = FindAllFood().Select(x => ids.Contains(x.FoodGroupId));

我想要 T 类型的属性 P 等于集合 C 中的任何 T 的所有对象具有 T 类型的对象。

最佳答案

我认为你可以使用Collection.removeAll(Collection) .

简单的例子:

    Map food = new HashMap();
food.put("appleKey", "apple");
food.put("orangeKey", "orange");
food.put("tomatoKey", "tomato");

Set unmatchedKeys = new HashSet(food.keySet());
unmatchedKeys.removeAll(Arrays.asList("orangeKey"));
System.err.println(unmatchedKeys);

Collection unmatchedValues = new ArrayList(food.values());
unmatchedValues.removeAll(Arrays.asList("apple", "tomato"));
System.err.println(unmatchedValues);

输出是:

[appleKey, tomatoKey]
[orange]

关于java - 删除那些属性不在 commons-collections 集合中的属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8212094/

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