当我试图反转这个数组列表时,我试图理解这里发生了什么,为什么将大小减少-1,为什么将I减少--会反转顺序?我知道当我在ArrayList上循环时会发生什么,但我不明白当我试图颠倒顺序时会发生哪里,有人能向我解释一下吗?我对编程还相当陌生。
ArrayList<String> colorsArray = new ArrayList<>();
colorsArray.add("Blue");
colorsArray.add("Black");
colorsArray.add("Yellow");
colorsArray.add("Brown");
colorsArray.add("White");
//prints arraylist..
for(int i =0; i < colorsArray.size(); i++){
System.out.println("Array List: " + colorsArray.get(i));
}
//This prints ArrayList in reverseOrder...
for(int i = colorsArray.size() - 1; i >= 0; i --){
System.out.println("Array List Reverse Order: " + colorsArray.get(i));
}
}
它不是"反转数组列表";。它只是按相反的顺序打印内容。
您的第一个循环从0计数到N-1,其中N是列表的大小。第二个循环从N-1倒计时到0。
然后,在每个循环中,打印位于计数的当前值(位于名为i
的变量中(指示的位置的列表元素。
仅此而已。
ArrayList
是一个有序列表。这意味着列表的每个位置都是从0开始连续编号的,直到列表的大小减1为止(因为它从0开始,而不是1(。
因此,您的列表元素将在列表中具有以下索引。
0-蓝色
1-黑色
2-黄色
3-浏览
4-Whote
这样,list.get(0)
返回Blue
,list.get(3)
返回Brown
。
在第一个循环中,从0
到4
遍历列表中的所有元素,但在第二个循环中从4
到0
,这就是它以相反顺序打印的原因。