gpt4 book ai didi

list - 在 Groovy 中从另一个对象列表中减去一个对象列表的最佳方法是什么?

转载 作者:行者123 更新时间:2023-12-04 17:19:07 26 4
gpt4 key购买 nike

当元素是对象时,是否有一种更好的方法来从另一个列表中减去一个列表?我认为可能有一种方法可以使用减号,但无法弄清楚。这就是我所拥有的:

class item1 {
int foo
int getFoo(){return foo}
public item1(id_in){ foo = id_in }
}

def list1 = [new item1(10),new item1(11),new item1(13)]
def list2 = [new item1(11),new item1(12),new item1(14)]

// list3 = list2 - list1
def list3 = list2.findAll{ !(it.foo in list1.collect{it.foo}) }
// works
assert list3.collect{it.foo} == [12,14]

这真的很好,但我只是好奇是否有更好的方法。 This question非常相似,但寻求交集(巧合的是,几个小时前刚刚发布)但我认为前提是对象具有 ID 属性。这就是我使用我的 foo 属性的原因 - 我不希望解决方案需要一些与“id”相关的类似 grails 的 mojo(如果存在这样的东西))。

最佳答案

你应该能够做到:

@groovy.transform.EqualsAndHashCode
class Item1 {
int foo
Item1(int too) {
this.foo = too
}
}

def list1 = [new Item1(10), new Item1(11), new Item1(13)]
def list2 = [new Item1(11), new Item1(12), new Item1(14)]

def foos = (list2 - list1).foo

关于list - 在 Groovy 中从另一个对象列表中减去一个对象列表的最佳方法是什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25089744/

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