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