Как отсортировать список объектов локали в интерфейсе списка с помощью компаратора в java

Я хотел бы отсортировать объекты Locale в интерфейсе списка. ниже код, который я использую. List<Locale> list = LocaleUtils.availableLocaleList(); LocaleUtils.availableLocaleList() при вызове этого мы получаем список доступных локалей в java, localeutils — это класс из org.apache.commons.lang.LocaleUtils.

I am trying to using the comparator interface below code.

            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);

I am able to print all the locales before sorting. But I am not able to sort the locale objects I am getting the below exception.

Не могли бы вы помочь мне разобраться в этом вопросе.

любой орган, не могли бы вы помочь мне. Спасибо и с уважением Виджай


person Vijay Kumar    schedule 23.06.2013    source источник


Ответы (1)


Вы используете неизменяемый список. Если вы поместите элементы в изменяемый список, его можно отсортировать. В противном случае вы могли бы использовать свой собственный алгоритм сортировки, который помещает элементы в новый список. Этот подход может быть быстрее. Попробуйте это вместо этого:

List<Locale> localeList = new ArrayList<Locale>(list);
Collections.sort(localeList, comparator);
person Lukas Eichler    schedule 23.06.2013