자바 구현 대상 이 속성 에 따라 정렬 하 는 두 가지 방법 예시

본 고 는 자바 실현 대상 이 그 속성 에 따라 정렬 하 는 두 가지 방법 을 실례 로 서술 하 였 다.여러분 께 참고 하도록 공유 하 겠 습 니 다.구체 적 으로 는 다음 과 같 습 니 다.
대상 목록 이나 배열 을 정렬 해 야 할 때 가 있 습 니 다.다음은 두 가지 간단 한 방법 을 제공 합 니 다.
방법 1:정렬 할 대상 클래스 를 Comparable<>인터페이스 로 구현 합 니 다.
우선,학생 류 를 만 들 고 우 리 는 학생 성적 에 따라 학생 들 을 정렬 할 것 이다.

/**
*     
*/
class Student implements Comparable<Student>{

  String name;
  int age;
  int score;

  public Student(String name, int age,int score) {
    this.name = name;
    this.age = age;
    this.score = score;
  }

  @Override
  public int compareTo(Studento) {
    // TODO Auto-generated method stub
    return this.age - o.age;
  }
}


public class Test {

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    ArrayList<Student> students = new ArrayList<>();
    students.add(new Student("  ", 19, 89));
    students.add(new Student("  ", 26, 90));
    students.add(new Student("  ", 23, 70));
    students.add(new Student("  ", 18, 80));

    System.out.println("   :");
    for (Student student : students) {
      System.out.println("  :"+student.name+"   :"+student.age+"   :"+student.score);
    }

    //   
    Collections.sort(students);

    System.out.println("   :");
    for (Student student : students) {
      System.out.println("  :"+student.name+"   :"+student.age+"   :"+student.score);
    }
  }
}

마찬가지 로 대상 의 다른 속성 에 따라 정렬 할 수도 있다.
방법 2:Comparator 익명 내부 클래스 를 사용 하여 실현 합 니 다.
아니면 같은 예 를 사용 하여 성적 에 따라 학생 들 을 정렬 합 니까?

/**
*     
*/
class Student {

  String name;
  int age;
  int score;

  public Student(String name, int age,int score) {
    this.name = name;
    this.age = age;
    this.score = score;
  }
}


public class Test {

  public static void main(String[] args) {
    // TODO Auto-generated method stub
    ArrayList<Student> students = new ArrayList<>();
    students.add(new Student("  ", 19, 89));
    students.add(new Student("  ", 26, 90));
    students.add(new Student("  ", 23, 70));
    students.add(new Student("  ", 18, 80));

    System.out.println("   :");
    for (Student student : students) {
      System.out.println("  :"+student.name+"   :"+student.age+"   :"+student.score);
    }

    Collections.sort(students,new Comparator<Student>() {

      @Override
      public int compare(Student o1, Student o2) {
        // TODO Auto-generated method stub
        return o1.age-o2.age;
      }
    });

    System.out.println("   :");
    for (Student student : students) {
      System.out.println("  :"+student.name+"   :"+student.age+"   :"+student.score);
    }
  }
}

대상 속성 에 따라 대상 목록 을 정렬 할 수도 있 습 니 다.
자바 관련 내용 에 관심 이 있 는 독자 들 은 본 사이트 의 주 제 를 볼 수 있 습 니 다.
본 고 에서 말 한 것 이 여러분 의 자바 프로 그래 밍 에 도움 이 되 기 를 바 랍 니 다.

좋은 웹페이지 즐겨찾기