对集合对象中的元素进行反转
参数ArrayList<Integer> list:要进行操作的集合对象 我们想要对一个集合对象的元素进行反转,那么我们就要理解反转的思路是什么
也就是说:第一个和最后一个交换,第二个和倒数第二个交换,第三个和倒数第三个交换...)
我们可以参照数组的反转方法如下:
arr[0] 和arr[arr.length-1-0]交换
arr[1] 和arr[arr.length-1-1]交换
arr[2] 和arr[arr.length-1-2]交换
通过数组反转方法我们可以总结出集合的反转方法:
因为我们知道了几个的总长度 所以我们可以通过所以进行反转
也就是说 第一个索引的值list.get(0)和最后一个索引的值进行交换list.get(list.size()-1-0)
以此类推:
list.get(0) 和list.get(list.size()-1-0)交换
list.get(1) 和list.get(list.size()-1-1)交换
list.get(2) 和list.get(list.size()-1-2)交换
我们可以看出好多东西都是重复的,所以我们可以这样通过for循环便利一下:
比如一个5位数数组它就要反转2次才能全部反转;一个8位的需要4次反转
所以我们可以把总长度除以2得到反转的次数.
for(int i=0;i<list.size()/2;i++){ 我们通过定义一个临时变量来接收第一个要反转的值
int temp=list.get(i);
list.set(i, list.get(list.size()-1-i));
list.set(list.size()-1-i, temp); }
|