[JAVA] 应用Collections实现集合List排序

Collections是Java中一个实用类,它提供了一系列对集合进行操作的静态方法。

下面我们通过代码来理解利用Collections实现对数值的排序

新建类ListSorter

package Package1;

import java.util.ArrayList;
import java.util.List;

public class ListSorter {
    public static void main(String[] args) {
        List<Integer> list=new ArrayList<>();   //用ArrayList对整型列表进行存储
        list.add(70);           //添加数据
        list.add(90);
        list.add(30);
        list.add(50);
        System.out.println(list);
    // 此处创建了一个包含 70、90、30、50 的整数列表,并将其打印出来
    }
}

List<Integer> list=new ArrayList<>();

在Java中创建了一个整数类型的列表对象。

List是一个接口,它定义了一些操作列表的方法,如添加,删除,获取元素

ArrayList是List接口的一个实现类,通过使用new ArrayList<>()来创建一个具体的ArrayList对象,并赋值给List类型的引用变量list

运行结果:

 

 按照默认情况下,list中的数据按照我们插入数据顺序排序,但在实际开发中,我们时常需要对数据进行排序操作,这里我们就可以学习利用Collections接口实现排序操作

在类中增加方法名 sort 实现排序操作

public class ListSorter {

public List<Integer> sort(List<Integer> list){  
        Collections.sort(list); //对数据进行升序排列
        System.out.println(list);
        return list; //封装了一个排序方法,会将排序后的list集合返回值进行返回
    }

}

public List<Integer> sort(List<Integer> list){ :

public表示该方法是公共的,可以在任何地方被访问。

方法声明:List<Integer>是方法的返回类型,意味着该方法将返回一个包含整数的列表
方法参数:List<Integer> list表示接受一个整数类型的列表作为输入参数

方法体内部:Collections.sort(list):使用Collections类的sort方法对传入的列表进行升序排序

                     return list:将排序后的列表返回给调用者

在主函数调用 

public static void main(String[] args) {
        List<Integer> list=new ArrayList<>();   //用ArrayList对整型列表进行存储
        list.add(70);           //添加数据
        list.add(90);
        list.add(30);
        list.add(50);
        System.out.println(list);


        ListSorter listSorter=new ListSorter();   //创建listSorter对象,初始化操作,并分配存储空间
        List<Integer> list1= listSorter.sort(list);//调用对象的sort方法,并将之前创建的list对象传入,该方法对传入的列表进行排序后存储在list1中
        System.out.println(list1);


    }
}

运行结果:

 

针对sort方法,默认实现的是升序排列,如果要实现降序排列 ,则在以上代码的基础上新加一个内部类SampleComparator

 class SampleComparator implements Comparator<Integer> {  //定义类并实现Comparator接口方法
        @Override
        //70 90 30 50
        //结果>0,则交换位置
        //结果=0或小于0,则位置不变
        public int compare(Integer o1, Integer o2) {
            return o2-o1;
        } //实现Comparator方法

在引用sort方法中加入刚定义的类名参数

 
        Collections.sort(list,new SampleComparator()); //加入类名参数
        

运行结果:

 

可以看到结果按照升序排序 

  • 6
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值