我必须实现一种类似于数组、序列或列表的数据结构,支持元素最廉价的环形前进和后退。请看以下示例:
Original sequence: 1 2 3 4 5
Forwarded once: 5 1 2 3 4
Forwarded twice: 4 5 1 2 3
实现后向遍历同理。最便宜且最符合Scala风格的实现方式是什么?在Java中,我可以使用LinkedList,它会表现得很好...然而,我在Scala中找不到任何明确的答案。
同时,它还必须容易地通过索引替换任何给定元素,就像LinkedList一样。
更新:
对于最快但不那么惯用的算法变体(您知道何时需要它),请参阅Petr Pudlák的答案!