Java实验 ArrayList排序
题目要求
使用单列集合Collection框架存储湘潭2020年各月的AQI值,分别从高到低、从低到高排序后输出。
代码
package test4;
import java.util.Collections;
import java.util.ArrayList;
public class test3 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
ArrayList<Integer> list = new ArrayList<>();
int[] AQI = {80,59,54,76,68,42,49,59,51,72,72,123};//懒得手动的输入了,先将数据存在数组中
for (int i:AQI) {
list.add(i);
}//将数据存入list中
Collections.sort(list);//从小到大排序
System.out.println("从小到大排序的结果为:");
System.out.println(list);
Collections.reverse(list);//将排序后的list倒过来
System.out.println("从大到小排序的结果为:");
System.out.println(list);
}
}
运行结果
从小到大排序的结果为:
[42, 49, 51, 54, 59, 59, 68, 72, 72, 76, 80, 123]
从大到小排序的结果为:
[123, 80, 76, 72, 72, 68, 59, 59, 54, 51, 49, 42]
思考
如何对存储的AQI值去掉所有有重复的值之后再进行排序。
代码
package think4;
import java.util.Collections;
import java.util.ArrayList;
import java.util.HashSet;
public class think3 {
public static void main(String[] args) {
// TODO 自动生成的方法存根
ArrayList<Integer> list = new ArrayList<>();
int[] AQI = {80,59,54,76,68,42,49,59,51,72,72,123};
for (int i:AQI) {
list.add(i);
}
HashSet<Integer> set = new HashSet<>(list);
ArrayList<Integer> list1 = new ArrayList<>(set);
Collections.sort(list1);
System.out.println("去除重复元素,由小到大排序的list为:"+list1);
Collections.reverse(list1);
System.out.println("去除重复元素,由大到小排序的list为:"+list1);
}
}
运行结果
去除重复元素,由小到大排序的list为:[42, 49, 51, 54, 59, 68, 72, 76, 80, 123]
去除重复元素,由大到小排序的list为:[123, 80, 76, 72, 68, 59, 54, 51, 49, 42]
个人代码,如有错误,欢迎指正

浙公网安备 33010602011771号