简单的例子
/**
* 集合排序,简单例子
*/
public class Test1 {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(3);
list.add(2);
list.add(9);
list.add(7);
//排序 小到大
Collections.sort(list);
System.out.println(list);
//集合反转
Collections.reverse(list);
System.out.println(list);
}
}
根据对象的属性进行排序
对象person
package cn.pang.test2;
/**
* 对象,需要实现comparable
*/
public class Person implements Comparable<Person> {
private String name;
private int age;
public Person(String name, int age) {
this.name = name;
this.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;
}
@Override
public int compareTo(Person o) {
//先比较name,如果name相同,比较年龄
int i = this.getName().compareTo(o.getName());
if (i == 0) {
return this.getAge() - o.getAge();
}
return i;
}
@Override
public String toString() {
return "Person{" +
"name='" + name + '\'' +
", age=" + age +
'}';
}
}
测试实现
public class Test2 {
public static void main(String[] args) {
ArrayList<Person> list = new ArrayList<>();
list.add(new Person("aa", 12));
list.add(new Person("cc", 55));
list.add(new Person("cc", 34));
list.add(new Person("bb", 33));
list.add(new Person("dd", 16));
Collections.sort(list);
for (int i = 0; i <list.size() ; i++) {
System.out.println(list.get(i));
}
}
}
打印结果
Person{name='aa', age=12}
Person{name='bb', age=33}
Person{name='cc', age=34}
Person{name='cc', age=55}
Person{name='dd', age=16}