java Collections类操作集合排序详解

KLQ 2020-08-26 10:01:37 java常见问答 4646

下面的文章要给大家讲到的就是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编程常见问题可以为你分享和解答。 

推荐阅读:

java Collection接口详细介绍

java Set集合,HashSet类详细介绍

java集合类详解