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]

个人代码,如有错误,欢迎指正

posted @ 2022-05-21 00:09  柏木カケル  阅读(93)  评论(0)    收藏  举报