我想排序CopyOnWriteArrayList。但是当我尝试运行以下代码时
它在扔unsorted operation exception。
public class CopyOnWriteArrayListExample {
public static void main(final String[] args) {
List<String> list = new CopyOnWriteArrayList<>();
list.add("3");
list.add("2");
list.add("1");
Collections.sort(list);
}
}
Exception in thread "main" java.lang.UnsupportedOperationException
at java.util.concurrent.CopyOnWriteArrayList$COWIterator.set(CopyOnWriteArrayList.java:1049)
at java.util.Collections.sort(Collections.java:159)
at com.sac.list.CopyOnWriteArrayListExample.main(CopyOnWriteArrayListExample.java:15)
提前致谢。
Collections.sort使用ListIterator.set
...
for (int j=0; j<a.length; j++) {
i.next();
i.set((T)a[j]);
}
但是CopyOnWriteArrayList的ListIterator不支持remove,set或add方法。
解决方法:
Object[] a = list.toArray();
Arrays.sort(a);
for (int i = 0; i < a.length; i++) {
list.set(i, (String) a[i]);
}
问题内容: 如何在Java中按降序排序? 问题答案: 这是您的一种方式list: 或者,您可以实施自己的排序并消除相反的步骤: 甚至更简单地使用,因为您只需要反转:
问题内容: 使用时,我找不到任何排序结果的方法 就我而言,我想按.Ports订购 如何订购结果? 问题答案: 列出容器 格式 概要 显示容器及其命令 在表格中显示带有标签的容器 在表中显示带有节点标签的容器
我想探讨我对桶排序的分析,如下所示 有许多方法可以实现桶排序。其中一些如下 类型1: 如果 时间: O(N) 空间: O(1) 类型2: 示例:按age age对一个人数组进行排序与用于排序的任意整数有些不同。正因为如此,它的范围[0-150]很小(所有人的年龄都在0-150之间)。因此,最快的排序方法是分配151个链表(让我们称之为桶),并根据每个人的年龄将其数据结构放入桶中: 时间:O(N K
我写了一个合并两个已经排序的链表的方法。然而,由于某种原因,列表的最后一个节点没有打印出来。有什么想法吗? 下面是链接列表的合并排序方法。
问题内容: 我正在尝试按其类型为time.Time的成员在Go中对结构进行排序。结构如下。 我具有以下用于排序的功能 映射定义如下 在地图填充值之后,按值对地图进行排序如下 问题是结果没有排序,谁能告诉我问题是什么。 问题答案: 在我看来,它看起来像是: 输出:
问题内容: 我编写了以下Python代码: 现在我明白了: 它以哪种方式订购? 它可能会帮助您获得我的ls -l输出: 它不是按文件名或大小排序的。 相关链接:, 问题答案: 它可能根本没有排序,而是使用条目在文件系统中出现的顺序,即使用时获得的顺序。(至少在我的机器上,这产生与列表匹配相同的顺序)。