我想在索引 i 和索引 j(两者都包含)之间的数组中执行循环左移。
例如:考虑数组 A,例如,
int[] A = {1, 2, 3, 4, 5};
如果我想在给定数组 A 中的 0(索引 i)和 2(索引 j)之间执行循环左移,则输出为:
A = {2, 3, 1, 4, 5}
java中有没有内置函数可以执行此类操作。
我不是问如何将数组循环左移 n 次。我的问题是循环左移数组中的一些元素,正如我通过示例所示的那样。
最佳答案
是的,有一个内置函数: Collections.rotate
例如,
Collections.rotate(Arrays.asList(A).subList(i, j+1), -1);
更新:
这不能直接用于原始数组,因为 Arrays.asList
不为你打拳击。您需要创建一个 Integer[]
或List<Integer>
不知何故,这没有非常优雅的方法。
关于java - java中是否有任何函数可以在索引 i 和索引 j (两者都包含)之间的数组中执行循环左移,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55146987/