Java中排列的数据结构

时间:2017-11-08 14:10:38

标签: java arrays permutation sortedset ordered-set

我需要存储n个整数的排列,并且能够在有效时间内计算值的排列和逆运算。

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

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

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

我需要以下操作:

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

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

Java中是否有任何允许这样做的结构或库,并且在空间和时间上都很有效?

1 个答案:

答案 0 :(得分:1)

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

它提供了以下方法:

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