public class TestArrayListSort {
public static void main(String[] args) {
List<Integer> list =
new ArrayList<>();
list.add(
5);
list.add(
4);
list.add(
8);
list.add(
6);
System.
out.println(
"没有排序前的顺序为:");
int size = list.size();
for (
int i =
0; i < size; i++) {
Integer integer = list.
get(i);
System.
out.print(integer+
" ");
}
System.
out.println();
System.
out.println(
"排序之后为:");
for (
int i =
0; i < size-
1; i++) {
for (
int j =
0; j < size-
1-i; j++) {
if (list.
get(j)>list.
get(j+
1)) {
Integer temp = list.
get(j);
list.
set(j, list.
get(j+
1));
list.
set(j+
1,temp);
}
}
}
System.
out.println(list);
}
}
其实我所疑问的就是下图箭头部分所指出的内容; 正如图片中所显示的一样:
第一个for循环list集合数组中的某一个数,而第二个for循环则是遍历除了该list数组中的第二个数。但是这第二个数是与第一个数相邻,可能第一个数的前一个数,也可能是后一个数。我这里取用第二个数为第一个数后面的那个数字。然后使用 if 语句比较两个数的大小,把大的换到后一个位置上,小的放在前一个位置上。