【问题标题】:Best way to rearrange an ArrayList in Java在 Java 中重新排列 ArrayList 的最佳方法
【发布时间】:2010-10-14 01:01:11
【问题描述】:

在列表中重新排列元素的最佳方式是什么?我需要移动元素的能力来移动列表中的元素,在索引中后退或前进一步。我正在考虑获取项目的索引,将其添加到索引 -1 / +2 并删除旧参考。

有没有一种更快的方法来处理重新排列而不在过程中在列表中创建重复项。

【问题讨论】:

  • 请举个例子。例如,有列表 ABCDEF,你想要什么?像ABCEDF(移动元素)或ABCEF(删除元素)之类的东西?为什么你写 -1 / +2 而不是 -1 / +1?
  • 我有 +2 就好像你在你的例子中添加说'C'到 indexof(c)+1,你会得到 ABCCDEF 删除旧的 C 将把它带回 ABCDEF。放 +2 会给你 ABDCEF,删除旧值会给 ABDCEF。因此 +2 而不是 +1。但 Collections.swap 正是我想要的。

标签: java list


【解决方案1】:

使用JDK的swap方法

JDK 的 Collections 类包含一个专门用于此目的的方法,称为 Collections.swap。根据 API 文档,此方法允许您“交换指定列表中指定位置的元素。”

我建议使用此解决方案,这样您就不必从列表中删除元素,也不必滚动自己的交换方法。此外,看起来这种方法自 Java 1.4 版本以来就已经存在,因此它应该适用于大多数现代 JDK。

【讨论】:

  • 我只记得它,因为我今天正在为我的项目查看它。它位于 JDK 的黑暗角落之一。
  • 非常酷,我想我也从未使用过这种方法,但它肯定会派上用场。
猜你喜欢
  • 1970-01-01
  • 2019-05-14
  • 2020-11-06
  • 2010-11-02
  • 1970-01-01
  • 1970-01-01
  • 2013-05-14
  • 2010-09-29
  • 2011-02-25
相关资源
最近更新 更多