让我们说我有阵列:
int[] taco = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
Run Code Online (Sandbox Code Playgroud)
如何根据索引将元素移动到前面?例:
将元素taco [5]移动到前面应该产生这个:
{0, 1, 2, 3, 4, 5, 6, 7, 8, 9}
// becomes
{5, 0, 1, 2, 3, 4, 6, 7, 8, 9}
Run Code Online (Sandbox Code Playgroud)
编辑:如果整数是对象,它会有所作为吗?
int变量中taco[0]在这种情况下,数组的前面)如果它是一个int值或对象的数组,它没有任何区别.算法是一样的.由于Object引用数组实际上是32位或64位内存引用的数组,因此您实际上仍在复制整数.
这是可以做到的代码 - 有几种方法可以做到这一点,但这是基本的想法:
public int[] moveValueAtIndexToFront(int[] arrayToBeShifted, int index) {
int valueBeingMoved = originalArray[index];
for (int i = index; i > 0; i--) {
arrayToBeShifted[i] = arrayToBeShifted[i-1];
}
arrayToBeShifted[0] = valueBeingMoved;
return arrayToBeShifted;
}
Run Code Online (Sandbox Code Playgroud)
0,则没有任何东西被移动.您还可以arraycopy通过OpenJDK项目查看您是否好奇的源代码.
int[] taco = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
int index = 5;
int temp = taco[index];
for(int i = index; i > 0; i--) {
taco[i] = taco[i-1];
}
taco[0] = temp;
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
10223 次 |
| 最近记录: |