我有以下Java代码:
但是Arrays.asList应该返回一个列表,当写入时,会将更改复制到数组中。有没有办法在不手动从数组转换为列表的情况下修复此问题?
我(认为我)无法承受浪费那么多 CPU 时间和内存来执行转换。
import java.util.Arrays;
import java.util.Collections;
public class Test {
public static void main(String[] args) {
int[] test = {1,2,3,4,5};
Collections.rotate(Arrays.asList(test), -1);
for(int i = 0; i < test.length; i++) { System.out.println(test[i]); }
}
}
我希望将数组旋转,但是我得到的输出是
1
2
3
4
5
为什么会这样呢?
是否有其他解决方案?
编辑:
所以这个方法可行:
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Test {
public static void main(String[] args) {
int[] test = {1,2,3,4,5};
List<Integer> testList = new ArrayList<Integer>();
for(int i = 0; i < test.length; i++) { testList.add(test[i]); }
Collections.rotate(testList, -1);
for(int i = 0; i < test.length; i++) { System.out.println(testList.get(i)); }
}
}
但是Arrays.asList应该返回一个列表,当写入时,会将更改复制到数组中。有没有办法在不手动从数组转换为列表的情况下修复此问题?
我(认为我)无法承受浪费那么多 CPU 时间和内存来执行转换。