如何在java中有效地交换Integer ArrayList中的条目

如何在java中有效地交换Integer ArrayList中的条目,java,arrays,arraylist,Java,Arrays,Arraylist,如果我有一个整数数组,我可以使用以下高效代码切换元素1和5,并打印新数组: (假设在main方法中,整数数组是{1,2,3,4,5}。因此,当调用下面的方法时,返回{5,2,3,4,1}) 我可以为ArrayList做类似的事情吗?我尝试了以下代码(与前面的代码完全相同,但使用了与ArrayList相关的命令): (我想获得结果{“cool”、“is”、“java”}) 谢谢 您可以使用该方法因为它们是整数s,您可以这样在数学上交换它们: int diff = nums[0] - nums[nu

如果我有一个整数数组,我可以使用以下高效代码切换元素1和5,并打印新数组: (假设在main方法中,整数数组是{1,2,3,4,5}。因此,当调用下面的方法时,返回{5,2,3,4,1})

我可以为ArrayList做类似的事情吗?我尝试了以下代码(与前面的代码完全相同,但使用了与ArrayList相关的命令):

(我想获得结果{“cool”、“is”、“java”})
谢谢

您可以使用该方法

因为它们是
整数
s,您可以这样在数学上交换它们:

int diff = nums[0] - nums[nums.length-1];
nums[0] = nums[0] + diff;
nums[nums.length-1] = nums[nums.length-1] - diff;

使用
set
修改
ArrayList
的值:

nums.set(0, (nums.get(0)+nums.get(4))-(nums.set(4,nums.get(0));
然而,这段代码很难理解,我怀疑这(以及额外的算术)是否值得保存一个交换变量


对于
字符串
s,未定义
-
运算符。但是您可以使用
子字符串
方法。但这将使它变得更加复杂。

请告诉我,你到底为什么要使用该代码交换条目,为什么你认为它更有效?没有人会理解数组交换代码。为什么不直接取索引0和索引大小之间的差值,然后从索引0中减去差值,然后将其添加到索引大小?假设我有{1,2,3,4,5……,1000},我想得到{1000999…,5,4,3,2,1},我可以创建一个for循环来运行500次。或者,我可以创建500个临时变量并替换;不用说,这是低效的。我是一个初学者程序员,所以我只知道这些;如果你知道的话,请建议另一种有效的方法one@BharadwajViswanathan:您不需要500个变量,只需要一个。
       String[]a={"java","is","cool"};
       a[0]=(a[0]+a[2])-(a[2]=a[0]);
       return a;
int diff = nums[0] - nums[nums.length-1];
nums[0] = nums[0] + diff;
nums[nums.length-1] = nums[nums.length-1] - diff;
nums.set(0, (nums.get(0)+nums.get(4))-(nums.set(4,nums.get(0));