删除那些属性不在 commons-collections 集合中的属性
假设我有一个 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
等于集合中的任何
具有 T
的对象>CT
类型的对象。
Say I have a collection of foodGroupIds
and a collection of food
. Using commons-collections, how can I filter out the food which does not belong to any of the food groups?
I might be on the right track, but can't figure out what predicate to use. Maybe have to create my own?
Collection<Long> ids = collect(
findGoodFoodGroups(),
invokerTransformer("getId"));
Collection<Food> food = getAllFood();
filter(food, transformedPredicate(
invokerTransformer("getFoodGroupId"),
?));
In C# this would be something like this:
var ids = FindGoodFoodGroups().Select(x => x.Id);
var goodFood = FindAllFood().Select(x => ids.Contains(x.FoodGroupId));
I want all objects whose property P
of type T
is equal to any T
in a collection C
with objects of type T
.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
我认为你可以使用 集合.removeAll(集合)。
简单的例子:
输出是:
I think you could use Collection.removeAll(Collection).
Simple examples:
Output is: