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

安迪J.

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

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]

确实不错,但是我只是好奇是否有更好的方法。这个问题很相似,但是要找到交集(巧合的是,几个小时前才发布),但是我认为前提是对象具有ID属性。这就是我使用foo属性的原因-我不希望该解决方案需要一些与“ id”相关的grails式mojo(如果存在这种情况)。

tim_yates

您应该能够做到:

@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

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在另一个对象的方法中访问一个对象?

在Eclipse中重用另一个Java项目中的类的最佳方法是什么?

为什么可以从JavaScript中的另一个日期对象中减去一个日期对象?

将JSON对象包装在另一个对象中的正确方法是什么?

如何从另一个数组中减去一个数组中的多个对象

检查一个列表中的对象是否高于另一个列表中的对象

用Python从另一个列表中减去一个列表

在另一个列表中创建一个列表引用对象

在另一个数组内的数组中搜索对象的最佳/最有效方法是什么?

在另一个类的构造函数中创建n个对象的最佳方法?

在Apollo Server中调用另一个解析器的最佳方法是什么?

将对象列表复制到另一个对象中另一个对象的另一个列表

从另一个未知jQuery对象中选择一个对象的最佳方法

在PHP中创建另一个类的对象的正确方法是什么?

从另一个PHP文件更改一个PHP文件中的变量的最佳方法是什么

从另一个列表中减去一个列表

在另一个方法中调用一个方法的对象

以相同顺序从另一个列表中减去一个列表

在SQLite中仅存储一个对象的历史记录的最佳方法是什么

添加方法 - 另一个 NS 中的对象

在javascript中从另一个列表中减去一个列表的值

如何从另一个对象数组中减去一个对象数组

如何在 Python 中从另一个对象中减去一个日期对象

在另一个类中创建一个类的对象,在UML类图中是什么关系?

将这个对象数组转换为另一个对象的最佳方法是什么?

在 AngularJS 中,从另一个模块导入组件的最佳方法是什么?

更新从Javascript中的另一个对象引用数据的对象的最佳方法?

用数组从另一个对象中减去一个对象

在javascript中搜索对象数组以查找另一个数组的最佳方法是什么?