使用 for 循环移动字符数组
Using for loops to shift an array of characters
我创建了一个看起来像
的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.
从数组的末尾迭代到开头会更有意义:
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';
这么小的尺寸使用数组是可以的。
只是指出另一种方法,您可以使用 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]"
我创建了一个看起来像
的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.
从数组的末尾迭代到开头会更有意义:
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';
这么小的尺寸使用数组是可以的。
只是指出另一种方法,您可以使用 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]"