如何比较List中的两个值?

时间:2012-08-01 10:15:25

标签: list grails groovy

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

请帮忙! 谢谢!

2 个答案:

答案 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