您好我试图在没有反向方法的情况下反转ArrayList。我只是想让它在没有方法的情况下工作。我似乎无法做对。 这就是我到目前为止所做的:
for (int x = nums.size()-1; x>=0; x--)
{
for(int z =0; z<nums.size();z++)
{
nums.set(z, x);
}
}
这是我的输出: 跑: 0 1 2 3
1 1 1 1 建立成功(总时间:0秒)
答案 0 :(得分:1)
你可以从底部提升&amp;同时从顶部(size() - 1
)交换元素下降,并在中间相遇时停止。
int i = 0;
int j = nums.size()-1;
while (i < j) {
int temp = nums.get(i);
nums.set( i, nums.get(j));
nums.set( j, temp);
i++; j--;
}
答案 1 :(得分:0)
您可以一次成对交换,从两端进入中心:
for (int i = 0; i < nums.size()/2; i++) {
Integer left = nums.get(i);
Integer right = nums.get(nums.size()-1-i);
nums.set(i, right);
nums.set(nums.size()-1-i, left);
}
对Integer
和int
使用left
代替right
,Java不必在int
和Integer
之间进行转换值(第一个是基元,第二个是实际对象)。这样可以提高性能。