boanquan
一.实现Comparable接口,重写compareTo方法,实现自定义排序
package Test;
import org.jetbrains.annotations.NotNull;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Iterator;
import java.util.List;
 
public class Teacher implements Comparable{
 
private String name;
private Integer age;
 
public String getName() {
return name;
}
 
public void setName(String name) {
this.name = name;
}
 
public Integer getAge() {
return age;
}
 
public void setAge(Integer age) {
this.age = age;
}
 
public Teacher(String name, Integer age) {
this.name = name;
this.age = age;
}
 
@Override
public int compareTo(@NotNull Object object) {
if (object instanceof Teacher){
Teacher teacher=(Teacher)object;
return this.age<teacher.age?-1:this.age==teacher.age?0:1;
}
throw new UnsupportedOperationException("unsupported opperation");
}
 
public static void main(String[] args) {
List<Teacher> teachers=new ArrayList<>();
teachers.add(new Teacher("bryan",23));
teachers.add(new Teacher("reman",20));
teachers.add(new Teacher("black",50));
teachers.add(new Teacher("andrew",45));
Collections.sort(teachers);
Iterator iterator=teachers.iterator();
while (iterator.hasNext()){
Teacher teacher=(Teacher) iterator.next();
System.out.println(teacher.getName());
 
}
}
}
 
二.实现Compare接口,重写Compare(Object obj,Object obj)方法
package Test;
 
import java.util.*;
 
/**
* Created by Administrator on 2017/7/12.
*/
public class Student{
 
private String name;
private Integer age;
 
public String getName() {
return name;
}
 
public void setName(String name) {
this.name = name;
}
 
public Integer getAge() {
return age;
}
 
public void setAge(Integer age) {
this.age = age;
}
 
public Student(String name, Integer age) {
this.name = name;
this.age = age;
}
 
static class ComparatorByAge implements Comparator{
@Override
public int compare(Object o1, Object o2) {
if (o1 instanceof Student && o2 instanceof Student){
return ((Student) o1).getAge()-((Student) o2).getAge();
}
throw new UnsupportedOperationException("UnsupportedOperation");
}
}
 
public static void main(String[] args) {
List<Student> students=new ArrayList<>();
students.add(new Student("balack",80));
students.add(new Student("andrew",50));
students.add(new Student("bryan",18));
students.add(new Student("benson",20));
Collections.sort(students,new ComparatorByAge());
Iterator iterator=students.iterator();
while (iterator.hasNext()){
Student student=(Student) iterator.next();
System.out.println(student.getName());
}
}
}

分类:

技术点:

相关文章:

  • 2022-01-08
  • 2022-01-08
  • 2022-01-08
  • 2022-01-08
  • 2021-07-21
  • 2021-11-19
  • 2021-11-01
  • 2021-11-19
猜你喜欢
  • 2022-01-08
  • 2019-11-30
  • 2021-11-01
  • 2022-01-08
  • 2022-01-08
  • 2022-01-08
  • 2022-01-08
相关资源
相似解决方案