Java:对不可修改的列表进行排序

新手上路,请多包涵

如何做到这一点?

我尝试创建一个新的空列表,然后将不可修改的列表元素复制到其中,但我遇到了不受支持的操作错误。

任何帮助表示赞赏。

原文由 Lista 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 610
2 个回答

您是否正在使用 Collections.emptyList() 创建一个空列表?如果是这样,那也是一个不可修改的列表,这可能是您问题的根源。

使用 List 实现的构造函数创建一个新列表,例如 new ArrayList() 。您可以将原始列表传递给构造函数,或者使用 addAll() 方法。

原文由 Stackoverflow 发布,翻译遵循 CC BY-SA 2.5 许可协议

    List unmodifiableList = Collections.unmodifiableList(list);

    List newList = new ArrayList(unmodifiableList);

    Collections.sort(newList);

ArrayList 的构造函数获取一个现有列表,读取其元素(不修改它们!),并将它们添加到新列表中。

原文由 Bozho 发布,翻译遵循 CC BY-SA 2.5 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题