List<Integer> list= new arrayList<>(); list.add(3); list.add(1); list.add(56); list.add(21); Collections.sort(list); System.out.println(lsit.toString());//1 3 21 56默认升序
List<String> list = new ArrayList<>(); list.add("orange"); list.add("ob"); list.add("green"); list.add("yellow"); //进行排序 Collections.sort(list);//它是根据每一个字符的asi码进行排序 System.out.println(list.toString());
int compare(T o1,T o2)比较用来排序的两个参数 - o1<o2 返回负整数 - o1==o2 返回0 - o1>o2 返回正整数
package 集合排序; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; public class CatSort { public static void main(String[] args) { Cat cat1=new Cat("jom",25,"中华田园猫"); Cat cat2=new Cat("jerry",22,"加菲猫"); ArrayList<Cat> list = new ArrayList<>(); list.add(cat1); list.add(cat2); Collections.sort(list,new AgeComparator());//传入排序的类和排序的规则 System.out.println(list); } } //按名字排序 class NameComparator implements Comparator<Cat>{ @Override public int compare(Cat o1, Cat o2) { //按照名字升序排序 return o1.getName().compareTo(o2.getName());//这里的compareTo是比较字符串的大小的,返回状况和compare同样 } } //按年龄排序 class AgeComparator implements Comparator<Cat>{ @Override public int compare(Cat o1, Cat o2) { int age1=o1.getMonth(); int age2=o2.getMonth(); return age1-age2; } } class Cat{ private String name; private int month; private String species; public Cat(String name, int month, String species) { this.name = name; this.month = month; this.species = species; } //省略了get和set方法 @Override public String toString() { return "Cat[" + name + "," + month + "," + species + "]"; } }
对每一个类的对象总体进行排序,成为天然排序java
类的comparaTo方法成为天然比较方法ide
若是排序的是集合,调用Collections.sort()方法排序函数
若是排序的是数字,调用Arrays.sort()方法排序测试
编写自定义类,实现Comparable接口this
实现comparaTo()方法code
编写测试类,使用Collections.sort(排序集合)进行排序对象
public int compareTo(Goods o) {//将当前对象(调用它的对象)和传入的对象进行比较 return (int) (this.price-o.getPrice()); }
package 集合排序; import java.util.ArrayList; import java.util.Collections; public class GoodsSort { public static void main(String[] args) { ArrayList<Goods> list = new ArrayList<>(); list.add(new Goods("s001","电冰箱",3200)); Collections.sort(list); System.out.println(list); } } class Goods implements Comparable<Goods>{ private String id; private String name; private double price; public Goods(String id, String name, double price) { this.id = id; this.name = name; this.price = price; } //省略了get和set方法 @Override public String toString() { return "Goods{" + "商品编号=" + id + ", 商品名称='" + name + '\'' + ", 商品价格=" + price + '}'; } @Override public int compareTo(Goods o) { //根据商品的价格进行排序 return (int) (this.price-o.getPrice()); } }
补充:排序