下面的文章要给大家讲到的就是java Collections类操作集合排序的相关知识,主要讲到了排序的正向和逆向方面的内容,一起来进行下了解吧。
排序(正向和逆向)
Collections提供了下面的方法用于对List集合元素进行排序:
void reverse(List list):对指定List集合元素进行逆向排序;
void shuffle(List list):对List集合元素进行随机排序(shuffle方法模拟了“洗牌”动作);
void sort(List list):根据元素的自然顺序对指定List集合的元素按升序进行排序;
void sort(List list, Comparator c):根据指定Comparator产生的顺序对List集合元素进行排序;
void swap(List list, int i, int j):将指定List集合中的i处元素和j处元素进行交换;
void rotate(List list, int distance):早distance是正数的时候,把list集合的后distance个元素“整体”移到前面;
在distance是负数的时候,把list集合的前distance个元素“整体”移到后面;
这个方法不会改变集合的长度。
下面的程序就简单的范了利用Collections工具类来操作List集合。
示例:
编写程序,对用户输入的5个商品价格进行排序后输出。
这里的话,要求使用Collections类当中的sort()方法按照从低到高的顺序对其进行排序,最后将排序后的成绩输出。
循环录入5个价格,并且,把每个价格都存储到已定义好的List集合prices当中,之后,使用Collections类的sort()方法对这个集合元素进行升序排序。
最后使用for循环遍历users集合,输出这个集合中的元素。
代码实现:
public class Test1 { public static void main(String[] args) { Scanner input = new Scanner(System.in); List prices = new ArrayList(); for (int i = 0; i < 5; i++) { System.out.println("请输入第 " + (i + 1) + " 个商品的价格:"); int p = input.nextInt(); prices.add(Integer.valueOf(p)); // 将录入的价格保存到List集合中 } Collections.sort(prices); // 调用sort()方法对集合进行排序 System.out.println("价格从低到高的排列为:"); for (int i = 0; i < prices.size(); i++) { System.out.print(prices.get(i) + "\t"); } } }
结果:
请输入第 1 个商品的价格: 85 请输入第 2 个商品的价格: 48 请输入第 3 个商品的价格: 66 请输入第 4 个商品的价格: 80 请输入第 5 个商品的价格: 18 价格从低到高的排列为: 18 48 66 80 85
示例:
循环录入5个商品的名称,并且,依照录入时间的先后顺序进行降序排序,即后录入的先输出。
编写程序,使用Collections类的reverse()方法对保存到List集合中的5个商品名称进行反转排序,并输出排序后的商品信息。
首先循环录入5个商品的名称,并且,把这些名称保存到List集合当中,之后,调用Collections类当中的reverse()方法对这个集合元素进行反转排序。
最后使用for循环将排序后的集合元素输出。
代码实现:
public class Test2 { public static void main(String[] args) { Scanner input = new Scanner(System.in); List students = new ArrayList(); System.out.println("******** 商品信息 ********"); for (int i = 0; i < 5; i++) { System.out.println("请输入第 " + (i + 1) + " 个商品的名称:"); String name = input.next(); students.add(name); // 将录入的商品名称存到List集合中 } Collections.reverse(students); // 调用reverse()方法对集合元素进行反转排序 System.out.println("按录入时间的先后顺序进行降序排列为:"); for (int i = 0; i < 5; i++) { System.out.print(students.get(i) + "\t"); } } }
结果:
******** 商品信息 ******** 请输入第 1 个商品的名称: 果粒橙 请输入第 2 个商品的名称: 冰红茶 请输入第 3 个商品的名称: 矿泉水 请输入第 4 个商品的名称: 软面包 请输入第 5 个商品的名称: 巧克力 按录入时间的先后顺序进行降序排列为: 巧克力 软面包 矿泉水 冰红茶 果粒橙
java Collections类操作集合排序正向和逆向的内容你都清楚了吗?更多java基础内容,可以继续的通过奇Q工具网来进行了解哦,更多的java编程常见问题可以为你分享和解答。
推荐阅读: