1

我想知道如何比较 List 的两个值。例如,我有一个List可能包含许多名称的名称,values例如(Ana, Ben, Maria, Ana). 从这个 List 中,由于名字 Ana 被列出了两次,所以应该只在数据库中插入一次,否则会返回错误。我知道唯一约束可以解决这个问题,但不是我正在从事的当前 grails 项目的要求。那么在不使用唯一约束的情况下,如何在将列表的值插入数据库之前比较它们?

请帮忙!谢谢!

4

2 回答 2

1

假设您并不意味着要避免uniqueGroovy 中的方法,您可以这样做:

List names = [ 'Ana', 'Ben', 'Maria', 'Ana' ]

assert names.unique(false) != names

names这会从(is )创建一个新列表,[ 'Ana', 'Ben', 'Maria' ]并断言它与原始列表不同。

当我们传递falseunique方法时,它会创建一个新列表。如果通过true,它将修改原始列表...

于 2012-08-01T10:18:54.383 回答
0

您可以使用不允许重复元素的 Set 而不是 List。如果将 names 变量声明为 Set,则无法添加重复元素。每次查看变量时,您都可以确定它自然地充满了独特的元素。

此外,如果您想将列表转换为集合,您可以执行以下操作:

def uniqueNames = names as Set
于 2012-08-01T15:58:23.097 回答