如何在java中使用comparator对列表接口中的区域设置对象列表进行排序

如何在java中使用comparator对列表接口中的区域设置对象列表进行排序,java,Java,我想在列表界面中对区域设置对象进行排序。 下面是我正在使用的代码。 List List=LocaleUtils.availablecalelist; LocaleUtils.availablecalelist调用此函数时,我们将获得java中可用语言环境的列表,LocaleUtils是org.apache.commons.lang.LocaleUtils中的类 我正在尝试使用下面代码中的比较器接口 我能够在排序之前打印所有区域设置。但是我无法对区域设置对象进行排序,我得到了以下异常 你能帮我整理

我想在列表界面中对区域设置对象进行排序。 下面是我正在使用的代码。 List List=LocaleUtils.availablecalelist; LocaleUtils.availablecalelist调用此函数时,我们将获得java中可用语言环境的列表,LocaleUtils是org.apache.commons.lang.LocaleUtils中的类

我正在尝试使用下面代码中的比较器接口

我能够在排序之前打印所有区域设置。但是我无法对区域设置对象进行排序,我得到了以下异常

你能帮我整理一下这个问题吗

任何人都可以帮助我。 谢谢和问候
Vijay

您正在使用一个不可修改的列表。如果将元素放在可修改列表中,则可以对其进行排序。否则,您可以使用自己的排序算法将元素放入新列表中。这种方法可以更快。 请尝试以下方法:

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

您正在使用一个不可修改的列表。如果将元素放在可修改列表中,则可以对其进行排序。否则,您可以使用自己的排序算法将元素放入新列表中。这种方法可以更快。 请尝试以下方法:

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