从集合中删除重复项

发布于 2024-10-25 12:35:39 字数 584 浏览 0 评论 0原文

我想要获取具有不同语言的所有区域设置的列表,其中 ISO3 代码用于标识区域设置的语言。我认为以下应该有效

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

I want to get a list of all Locales that have a different language, where the ISO3 code is used to identify the language of a Locale. I thought the following should work

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

生生不灭 2024-11-01 12:35:39

您使用了错误的语法:您正在使用 Collection.unique(闭包)

allLocales.unique {new ISO3LangComparator()}

您应该使用 Collection.unique(Comparator comparator)

allLocales.unique (new ISO3LangComparator())

因此,只需使用 () 而不是 {},您的问题是解决了。

You are using the wrong syntax: you are using Collection.unique(Closure closure):

allLocales.unique {new ISO3LangComparator()}

You should use Collection.unique(Comparator comparator)

allLocales.unique (new ISO3LangComparator())

So simply use () instead of {}, and your problem is solved.

蓝咒 2024-11-01 12:35:39

亚当说的话。
或者......

allLocales.unique{it.ISO3Language}

你忘记了比较器

what Adam said.
or...

allLocales.unique{it.ISO3Language}

and you forget about the comparator

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文