以下是我用来按预定义顺序排序列表的代码。预定义顺序在itemsSorted列表中提到。
final List<String> itemsSorted = myMethod.getSortedItems();
List<String> plainItemList = myMethod2.getAllItems();
final Comparator<String> comparator = new Comparator<String>() {
public int compare(String str1, String str2) {
return orderOf(str1) - orderOf(str2);
}
private int orderOf(String name) {
return ((itemsSorted)).indexOf(name);
}
};
Collections.sort(plainItemList, comparator);
return plainItemList;
上面的代码会抛出异常
Caused by: java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableList$1.set(Collections.java:1244)
at java.util.Collections.sort(Collections.java:221)
我不确定为什么该列表是不可修改的,请帮助解答。
myMethod2.getAllItems()
返回什么?您需要提供足够的信息来帮助我们。我们无法看到您的代码。 - Dave NewtonmyMethod2.getAllItems()
的代码。 - Marco Bolis