ArrayList容器排序 comparator接口与comparable接口的使用
2016-10-08 20:03
489 查看
1、实体类实现comparable接口,重写compareTo方法
2、创建新的业务类实现comparator接口,重写compare方法。
package io; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Student implements Comparable<Student>{ private String name; private int age; private Date birthDay; public Student(String name, int age, String birthDay) { super(); this.name = name; this.age = age; DateFormat ds=new SimpleDateFormat("yyyy-MM-dd"); try { this.birthDay = ds.parse(birthDay); } catch (ParseException e) { e.printStackTrace(); }; } 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 Date getBirthDay() { return birthDay; } public void setBirthDay(Date birthDay) { this.birthDay = birthDay; } //按名字降序 按生日升序 @Override public int compareTo(Student o) { int result=0; result=-this.name.compareTo(o.name); if(result==0){ result=this.birthDay.compareTo(o.birthDay); } return result; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + ", birthDay=" + birthDay + "]"; } }
package io; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class App { public static void main(String[] args) { List<Student> list=new ArrayList<Student>(); list.add(new Student("张三", 20, "1987-10-5")); list.add(new Student("王五", 22, "1986-10-5")); list.add(new Student("赵六", 25, "1988-10-5")); list.add(new Student("王七", 19, "1980-10-5")); Collections.sort(list); for(Student s:list){ System.out.println(s); } } }
2、创建新的业务类实现comparator接口,重写compare方法。
package io; import java.text.DateFormat; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; public class Student { private String name; private int age; private Date birthDay; public Student(String name, int age, String birthDay) { super(); this.name = name; this.age = age; DateFormat ds=new SimpleDateFormat("yyyy-MM-dd"); try { this.birthDay = ds.parse(birthDay); } catch (ParseException e) { e.printStackTrace(); }; } 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 Date getBirthDay() { return birthDay; } public void setBirthDay(Date birthDay) { this.birthDay = birthDay; } @Override public String toString() { return "Student [name=" + name + ", age=" + age + ", birthDay=" + birthDay + "]"; } }
package io; import java.util.Comparator; public class BirthdayComp implements Comparator<Student>{ @Override public int compare(Student o1, Student o2) { return o1.getBirthDay().compareTo(o2.getBirthDay()); } }
package io; import java.util.ArrayList; import java.util.Collections; import java.util.List; public class App { public static void main(String[] args) { List<Student> list=new ArrayList<Student>(); list.add(new Student("张三", 20, "1987-10-5")); list.add(new Student("王五", 22, "1986-10-5")); list.add(new Student("赵六", 25, "1988-10-5")); list.add(new Student("王七", 19, "1980-10-5")); Collections.sort(list, new BirthdayComp()); for(Student s:list){ System.out.println(s); } } }
相关文章推荐
- java 使用comparator接口对ArrayList排序无效
- java使用Comparator与Comparable接口对对象排序
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- 使用Comparable、Comparator接口实现对对象数组、List集合自定义排序
- Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- JAVA中Arrays.sort()使用两种方式(Comparable和Comparator接口)对对象或者引用进行排序
- 对象排序之Comparator,Comparable接口区别(华为面试题)
- J2SE基础夯实系列之List中的数据如何根据对象的某一个或多个字段排序引出Comparable和comparator的使用
- J2SE基础夯实系列之List中的数据如何根据对象的某一个或多个字段排序引出Comparable和comparator的使用-- Collections与Arrays
- java中Comparable接口和Comparator接口的使用
- java排序和Comparable,Comparator两个接口区别
- Java中comparable和comparator接口的排序原理
- Java中Comparator接口和Comparable接口的使用
- JAVA 利用Arraylist.sort()进行排序的实现。(comparable接口的实现)
- 对象的比较--Comparable接口和Comparator接口的使用
- 集合框架(五)使用Comparable接口和Comparator接口来比较元素