赞
踩
List:
1.对象实现Comparable<>接口,重写comparaTo方法
2.用collections的sort(List list, comparator<? super E> comparator)方法
TreeSet:
1.对象实现Comparable<>接口,重写comparaTo方法
2.用构造方法TreeSet(comparator<? super E> comparator)
举例:
步骤:1、创建Conparator对象
2、重写compare方法,自定义排序规则
3、利用集合的sort方法给集合排序
import java.util.ArrayList; import java.util.Comparator; public class dff { public static void main(String[] args) { Person p1=new Person("张三",18); Person p2=new Person("李四",15); ArrayList<Person> l=new ArrayList(); l.add(p1); l.add(p2); System.out.println(l); Comparator com=new Comparator<Person>() { @Override public int compare(Person o1, Person o2) { if(o2.getAge()<o1.getAge()){ //从小到大 return 1; } return -1; } }; l.sort(com); // 集合内的排序方法 System.out.println(l); } } class Person { private String name; private int age; @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; } }
2.对象实现Comparable<>接口方法:
class Person implements Comparable<Person>{ private String name; private int age; @Override public int compareTo(Person o) { //this 与 o 比较 //返回的数据:负数this小/零相等/正数this大 if(this.age>o.age){ return 1; }else if(this.age==o.age){ //自己根据需要定义 return 0; } return -1; } ....构造函数和get,set函数 } ArarayList<Person> a=new ArrayList<>(); Person p1=new Person("张三","18"); Person p2=new Person("李四","20"); a.add(p1); a.add(p2); //集合已自动排序
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。