Collections 从集合中删除重复项
我想得到一个具有不同语言的所有区域设置的列表,其中ISO3代码用于标识区域设置的语言。我认为下面的方法应该有效Collections 从集合中删除重复项,collections,groovy,Collections,Groovy,我想得到一个具有不同语言的所有区域设置的列表,其中ISO3代码用于标识区域设置的语言。我认为下面的方法应该有效 class ISO3LangComparator implements Comparator<Locale> { int compare(Locale locale1, Locale locale2) { locale1.ISO3Language <=> locale2.ISO3Language } } def allLoca
class ISO3LangComparator implements Comparator<Locale> {
int compare(Locale locale1, Locale locale2) {
locale1.ISO3Language <=> locale2.ISO3Language
}
}
def allLocales = Locale.getAvailableLocales().toList()
def uniqueLocales = allLocales.unique {new ISO3LangComparator()}
// Test how many locales there are with iso3 code 'ara'
def arabicLocaleCount = uniqueLocales.findAll {it.ISO3Language == 'ara'}.size()
// This assertion fails
assert arabicLocaleCount <= 1
类ISO3LangComparator实现比较器{
int比较(区域设置locale1、区域设置locale2){
locale1.iso3语言locale2.iso3语言
}
}
def allLocales=Locale.getAvailableCales().toList()
def uniqueLocales=allLocales.unique{new ISO3LangComparator()}
//测试有多少地区使用iso3代码“ara”
def arabicLocaleCount=uniqueLocales.findAll{it.ISO3Language=='ara'}.size()
//这个断言失败了
断言arabicLocaleCount您使用了错误的语法:您正在使用: 你应该使用 所以只要用
()
而不是{}
,你的问题就解决了。亚当说的。或者 你忘了比较仪
allLocales.unique {new ISO3LangComparator()}
allLocales.unique (new ISO3LangComparator())
allLocales.unique{it.ISO3Language}