POST

JAVA 배열에 들어 있는 데이터 정렬하기

자바에서는 기본으로 제공되는 Arrays 라는 클래스내의 sort()메소드를 이용하여 배열을 정렬할 수 있다.

단, sort메소드는 대상 객체가 기본 제공되는 Comparable 인터페이스를 구현하고 있는 경우에만 정렬 서비스를 제공 한다.

 이Arrays 클래스를이용하여 배열을 정렬하여보자.


학생을 나타내는 Student 클래스를 작성하고 학생들의 평균 평점을 기준으로 정렬하는 코드를 작성하여 보자.





public class Test {

public static void main(String[] args) { // 메인 클래스내의 메인 메소드

Student[] students = new Student[3];

students[0] = new Student("홍길동",3.39);

students[1] = new Student("임꺽정",4.21);

students[2] = new Student("황진이",2.19);

/* Arrays 클래스의 정적 메소드 sort()는 

* Comparable 인터페이스를 구현한 원소로

* 이루어진 배열을 정렬한다. */

Arrays.sort(students); 

for(Student s : students) // for-each문을 사용

System.out.println("name: "+s.getName()+"\ngrade: "+s.getGpa());

}

}

class Student implements Comparable {

private String name;

private double gpa;

public Student(String n, double g) {

name = n;

gpa=g;

}

public String getName() { return name; }

public double getGpa() { return gpa; }

/* Comparable 인터페이스에 정의된 comparTo()를 구현한다. */

public int compareTo(Object obj) {

Student other = (Student)obj; // 다운케스팅

if(gpa<other.gpa)

return -1;

else if (gpa>other.gpa)

return 1;

else 

return 0;

}

}