/* Collections 中有一个方法叫做sort可以对集合中的内容进行排序 static void sort(List list): 对集合中的内容进行排序 要使用这个sort方法进行排序的集合,里面的泛型必须实现Comparable接口 实现这个接口的对象才具备排序的功能, 这种排序自然排序。 口诀: 升序就是我减他,降续就是他减我 */ 举例:
public class Demo02Collections { public static void main(String[] args) { ArrayList<String> list = new ArrayList<>();//String 里面实现了Compareable接口,重写了compare to 放法 Collections.addAll(list, "aa", "bb", "cc", "dd", "bb"); System.out.println(list); Collections.sort(list);// System.out.println(list); //定义集合保存数字 ArrayList<Integer> list1 = new ArrayList<>(); Collections.addAll(list1, 20, 30, 40, 5, 8, 1, 4, 10); Collections.sort(list1); System.out.println(list1); //定义集合保存Person ArrayList<Person> list3 = new ArrayList<Person>()泛型 Person必须实现Comparable接口
在排序的时候,会使用某个对象调用这个compareTo方法和另一个对象进行比较。 返回值等于0,表示当前对象和另一个对象是相同的。 返回值小于0,表示当前对象小于指定的对象 返回值大于0,表示当前对象大于指定的对象。 口诀 升序就是我减他,降续就是他减我 */ public class Person implements Comparable<Person> { private String name; private int age; @Override//降序 public int compareTo(Person o) { return o.getAge()-this.getAge(); } // @Override // public int compareTo(Person o) { // return this.getAge()-o.getAge();//升序 // } @Override public String toString() { return "Person{" + "name='" + name + '\'' + ", age=" + age + '}'; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public Person(String name, int age) { this.name = name; this.age = age; } public Person() { } }
list3.add( new Person( " 大幂幂 ", 19)); list3.add( new Person( " 小波波 ", 18)); Collections. addAll(list3, new Person( " 大柳岩 ", 17), new Person( " 小屁孩 ", 22)); System. out.println(list3); Collections.sort(list3); System. out.println(list3); }}