java - Java 中排列的数据结构

标签 java arrays permutation sortedset ordered-set

我需要存储 n 个整数的排列,并且能够高效地计算值的排列和逆运算。

即,我需要以这样的方式存储值 [0...n-1] 的重新排序,我可以要求位置(i)和值(j)(其中 0 <= i,j <= n )。

举个例子——假设我们有以下值的排列:

  • [7,2,3,6,0,4,8,9,1,5]

我需要进行以下操作:

  • 位置(7) = 9
  • 值(9) = 7

我知道 C++ 中的库,例如:https://github.com/fclaude/libcds2

Java 中是否有任何结构或库可以实现这一点,并且在空间和时间上都很高效?

最佳答案

如果没有重复项,List 界面将满足您的需求。

它提供了以下方法:

  • List#get(index) 返回索引为 index 的元素
  • List#indexOf(element) 返回第一个遇到的元素
  • 的索引

关于java - Java 中排列的数据结构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47181881/

相关文章:

java - 如何获取字符串中字符的 (n) 索引?

java - 如何将应用程序置于停止状态而不破坏后退按钮?

复制多维数组(指针)

生成巨大词表的算法

python - 生成具有重复元素的列表排列

java - 事务与Transactional和TransactionalTestExecutionListener有什么区别?

java - 计算整数数组中每个元素的阶乘

java - 我制作的数组有什么问题?

c++ - 如何初始化一个大小最初未知的数组?

java - 无法理解字符串置换 Java 代码