簡體   English   中英

如何使用Java中的比較器在列表界面中對語言環境對象列表進行排序

[英]How to sort list of locale objects in list interface using comparator in java

我想在列表界面中對Locale對象進行排序。 下面是我正在使用的代碼。 List<Locale> list = LocaleUtils.availableLocaleList(); LocaleUtils.availableLocaleList() List<Locale> list = LocaleUtils.availableLocaleList(); LocaleUtils.availableLocaleList()在調用它時,我們正在獲取Java中可用語言環境的列表, localeutilsorg.apache.commons.lang.LocaleUtils的類。

我正在嘗試使用下面代碼的比較器接口。

            List<Locale> locale = LocaleUtils.availableLocaleList();
    Comparator<Locale> comparator = new Comparator<Locale>() {

        @Override
        public int compare(Locale o1, Locale o2) {
            return o1.toString().compareTo(o2.toString());
        }
    };

    Collections.sort(list, comparator);
    System.out.println(list);

我能夠在排序之前打印所有語言環境。 但是我無法對語言環境對象進行排序,但出現以下異常。

您能幫我解決這個問題嗎?

任何人都可以請我幫忙。 感謝和問候維傑

您正在使用不可修改的列表。 如果將元素放在可修改列表中,則可以對其進行排序。 否則,您可以使用自己的排序算法,將元素放入新列表中。 這種方法可能更快。 嘗試以下方法:

List<Locale> localeList = new ArrayList<Locale>(list);
Collections.sort(localeList, comparator);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM