다양한 관심 :)

JAVA- Collection (LIST SORT) 본문

프로그래밍 공부/JAVA

JAVA- Collection (LIST SORT)

뚜뚜:) 2020. 11. 2. 19:51

배열의 정렬  : 오름차순 , 내림차순

 

- 정렬전에는 입력한 순서대로 나온다.

- 정렬해주는 명령어 : Collections.sort() 

- 정렬은 기본적으로 오름차순으로 정렬을 수행 : 내부정렬방식이 오름차순

 

	ArrayList<String> list = new ArrayList<>();
		
	
		list.add("일지매");
		list.add("홍길동");
		list.add("성춘향");
		list.add("변학도");
		list.add("이순신");
		
		System.out.println("정렬 전 : " + list); 	//정렬전에는 입력한 순서대로 나옴
		
		System.out.println("\n---sort 매서드를 사용---");
		Collections.sort(list);
		System.out.println("정렬 후 : " + list);
		
		System.out.println("\n---shuffle 매서드를 사용 ---");
		Collections.shuffle(list);
		System.out.println("자료 섞기 후 : " + list);

 

 

외부정렬 기준 :  클래스를 지정해서 정렬하기 (내림차순 정렬)

  * 방법 : 정렬 방식을 정해주는 class를 작성(=외부기준 클래스)

    Comparator 인터페이스를 구현해서 작성한다.

 

 

더보기

* Compare()메서드를 재정의해서 정렬하고자 하는 기준을 정한다.


 compare()메서드의 반환값
 : 반환값이 0 --> 두 값이 같다.
 : 반환값이 음수 --> 순서를 변경하지 않는다. 
 : 반환값이 양수 --> 앞, 뒤 값의 순서를 변경한다. 

예) 오름차순일 경우 ==> 앞의 값이 크면 반환값이 양수, 같으면 0, 뒤의값이 크면 음수 (= return 값)

String 객체에는 정렬을 위해서 compareTo()메서드가 구현되어 있는데
이 메서드의 반환값은 오름차순에 맞게 반환되도록 구현되어 있다. 


형식 ) 앞 문자열.compareTo(뒤문자열);
 (Wrapper 클래스와 Date, File클래스에도 구현되어 있다.)
 

class Desc implements Comparator<String>{

@Override
		public int compare(String str1, String str2) {
        
        //내림차순으로 정렬되도록 구현하기
			
			//1. if문 사용 
			if(str1.compareTo(str2) > 0) {
				return -1;
			}else if(str1.compareTo(str2)==0) {
				return 0;
			}else {
				return 1;
			}
			
            
			//2. 2번째 방법
			//반환해주는 값에 부호를 반대로 들어가게 함 
			//String만 가능 
			return str1.compareTo(str2) * -1;
			
		}

 

'프로그래밍 공부 > JAVA' 카테고리의 다른 글

JAVA- Collection (LIST)  (0) 2020.11.03
JAVA- Collection ( Vector)  (0) 2020.11.03
JAVA - File Test(파일크기, 경로 )  (0) 2020.11.02
JAVA-FILE 디렉토리(폴더) 만들기  (0) 2020.11.02
Java- File 객체 만들기  (0) 2020.11.02