본문 바로가기
Java

Comparable 인터페이스, Comparator 인터페이스

by 코딩로그 2022. 8. 5.

1. Comparable 인터페이스

  • Comparable 인터페이스를 통해 객체를 비교할 수 있다.
  • Comparable 인터페이스의 추상메서드인 compareTo 메서드를 구현해야한다.

2. Comparator 인터페이스

  • 추상메서드인 compare메서드를 구현해야한다.
  • 두 객체를 파라미터로 받아 비교한다.
public class CompareTest {

	public static void main(String[] args) {
		
		Student[] students = {
				new Student("peter", 21), 
				new Student("alley", 25),
				new Student("cally", 35),
				new Student("benzino", 55)};
	
		System.out.println("-----------정렬 전------------");
		for(Student s : students) {
			System.out.println(s);
		}
		
		Arrays.sort(students);
		
		System.out.println("-------------이름 순으로 정렬 후------------- ");
		for(Student s : students) {
			System.out.println(s);
		}
		
		System.out.println("-------------나이 순으로 정렬 후------------- ");
		
		Arrays.sort(students, new Comparator<Student>() {
			@Override
			public int compare(Student o1, Student o2) {
            	//오름차순으로 정렬
				return Integer.valueOf(o1.age).compareTo(o2.age);
			}
		});
		
		for(Student s : students) {
			System.out.println(s);
		}
		
	}
	
}

class Student implements Comparable<Student>{
	public String name;
	public int age;
	
	public Student(String name, int age) {
		this.name = name;
		this.age = age;
	}

	@Override
	public int compareTo(Student o) {
    	//오름차순으로 정렬
		return this.name.compareTo(o.name);
	}
	
	@Override
	public String toString() {
		return "학생 이름 : " + name + ", 나이 : " + age;
	}
	
}

출력 결과

'Java' 카테고리의 다른 글

[JAVA] StringBuilder  (0) 2022.08.19
자바 배열 복사  (0) 2022.08.10
자바 StringTokenizer  (0) 2022.08.04
[JAVA]문자열 결합  (0) 2022.08.02
JAVA Stream  (0) 2022.07.31