集合练习题
/*
*编写程序,生成5个1至10之间的随机整数,存入一个List集合,编写方法对List集合进行排序(自定义排序算法,
*禁用collection.sort方法和treeSet),然后遍历集合输出
*/package com.itheima.test04;
import java.util.ArrayList;
public class Example {
public static void main(String[] args) {
//创建ArrayList集合对象
ArrayList<Integer> al = new ArrayList<Integer>();
//循环生成五个元素,存入ArrayList集合中
for(int i = 0; i < 5 ; i++) {
al.add((int)(Math.random() * 10) + 1);
}
//ArrayList的底层数据结构是数组,故考虑使用数组排序的方式:冒泡排序或比较排序
//冒泡排序法
// for(int i = 0; i < al.size() - 1; i++) {
// for (int j = 0; j < al.size()- 1 - i; j++) {
// //get(int index)方法,返回指定位置上的元素
// if(al.get(j) > al.get(j + 1)) {
// int temp = al.get(j);
////set(int index,E element)方法,用指定的元素,替代此列表中指定位置上的元素
// al.set(j, al.get(j + 1));
// al.set(j + 1, temp);
// }
// }
// }
//选择排序法
for(int i = 0; i < al.size() - 1; i++) {
for (int j = i + 1; j < al.size(); j++) {
//get(int index)方法,返回指定位置上的元素
if(al.get(i) > al.get(j)) {
int temp = al.get(i);
//set(int index,E element)方法,用指定的元素,替代此列表中指定位置上的元素
al.set(i, al.get(j));
al.set(j, temp);
}
}
}
//遍历集合中的元素,并打印在控制台中
for (Integer t : al) {
System.out.print(t + " ");
}
}
}
每次在控制台中运行的结果是不一致的,因为集合中的元素是随机产生的,在控制台中出现的效果为:2 4 6 8 10 |
|