다연이네

[days22] sort(정렬) 본문

Java

[days22] sort(정렬)

 다연  2020. 10. 21. 13:30
반응형
package days22;

import java.util.Arrays;
import java.util.Comparator;

public class Ex08 {

	public static void main(String[] args) {

		//Comparator와 Comparable (둘 다 인터페이스)
		//Comparator 매개변수2개, 비교 잣대
		//Comparable 클래스가 implements해서 그 안에서 비교

	
		String [] strArr = {
				"tiger", "cat", "Dog", "lion"
		};
		
		System.out.println(Arrays.toString(strArr)); 
          //[tiger, cat, Dog, lion] 그냥 출력

		Arrays.sort(strArr); //정렬
		System.out.println(Arrays.toString(strArr)); 
          //[Dog, cat, lion, tiger] 대문자가 아스키코드가 더 작아서 앞으로
		  //오름차순
		//정렬(Sort) : String자료형은 Comparable인터페이스를 구현한 클래스이기 때문에 오류나지 않음
		Arrays.sort(strArr, String.CASE_INSENSITIVE_ORDER);
		System.out.println(Arrays.toString(strArr));  
          //[cat, Dog, lion, tiger] 대소문자 구분 없이 정렬
		
		//문제) 내림차순으로 정렬하고싶다
		Arrays.sort(strArr, new StringDescendingComparator()); 
        //디센딩 함수 없음 => Comparator를 물려받은 기준 객체를 만들자
		System.out.println(Arrays.toString(strArr)); 
          //[tiger, lion, cat, Dog] 내림차순

		
		
		
	}//main

}//class

class StringDescendingComparator implements Comparator<String>{

	@Override
	public int compare(String o1, String o2) {
		return o1.compareTo(o2)*(-1);
	}

}
반응형
Comments