使用for循环来移动一个字符数组

时间:2015-10-14 06:39:28

标签: java for-loop iteration

我创建了一个类似

char[]
[A, A, B, C]

我想删除最后一个字符,然后将其他字符向上移动一个,并在第一个索引处存储新的char。所以它看起来像这样:

[D, A, A, B]

我如何使用一个或两个for loops来完成此操作。我有正确的想法,我只是没有正确实现它。

char[] array = new char[4]; //Array looks like [A, A, B, C]

for(int i = 0; i <= array.length - 2; i++) {
    array[i] = array[i + 1];
}
array[0] = 'D'; //This should be the new char at index 0.

2 个答案:

答案 0 :(得分:9)

从数组的末尾到开头迭代会更有意义:

char[] array = new char[4]; //Array looks like [A, A, B, C]

for(int i = array.length - 1; i > 0; i--) {
    array[i] = array[i - 1];
}
array[0] = 'D';

答案 1 :(得分:2)

将数组用于如此小的尺寸是可以的。

只是指出另一种方法,您可以使用LinkedList

LinkedList list = new LinkedList<Character>(Arrays.asList('A', 'A', 'B', 'C'));
System.out.println(list); // prints "[A, A, B, C]"
list.removeLast();
list.addFirst('D');
System.out.println(list); // prints "[D, A, A, B]"