我想知道如何比较 List 的两个值。例如,我有一个List
可能包含许多名称的名称,values
例如(Ana, Ben, Maria, Ana)
. 从这个 List 中,由于名字 Ana 被列出了两次,所以应该只在数据库中插入一次,否则会返回错误。我知道唯一约束可以解决这个问题,但不是我正在从事的当前 grails 项目的要求。那么在不使用唯一约束的情况下,如何在将列表的值插入数据库之前比较它们?
请帮忙!谢谢!
假设您并不意味着要避免unique
Groovy 中的方法,您可以这样做:
List names = [ 'Ana', 'Ben', 'Maria', 'Ana' ]
assert names.unique(false) != names
names
这会从(is )创建一个新列表,[ 'Ana', 'Ben', 'Maria' ]
并断言它与原始列表不同。
当我们传递false
给unique
方法时,它会创建一个新列表。如果通过true
,它将修改原始列表...
您可以使用不允许重复元素的 Set 而不是 List。如果将 names 变量声明为 Set,则无法添加重复元素。每次查看变量时,您都可以确定它自然地充满了独特的元素。
此外,如果您想将列表转换为集合,您可以执行以下操作:
def uniqueNames = names as Set