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()); //加入类名参数
运行结果:
可以看到结果按照升序排序