본문 바로가기
코딩테스트/정렬

Arrays.sort( ) - String 타입 / Integer 타입

by asdft 2024. 2. 15.

Arrays.sort( )

1. String 타입의 정수배열을 sort()로 정렬하면 "숫자문자열"의 첫번째 index의 "숫자문자"에 따라 정렬된다.

ex) String array[] = {"3","1117","213","543","12345678"}

      Arrays.sort(array);                                  // ["1117","12345678","213","3","543"]

      Arrays.sort(arr,(a,b)->a.compareTo(b))  // 오름차순 : ["1117","12345678","213","3","543"]

      Arrays.sort(arr,(a,b)->b.compareTo(a))  // 내림차순 : ["543","3","213","12345678","1117"]

      Arrays.sort(arr,(a,b) -> a-b);                   // 실행안됨

   

2. Integer 타입의 정수배열을 sort()로 정렬하면 크기 순서대로 정렬된다.

(배열선언시 Class Type만 가능. Wrapper Class 사용하기)

ex) Integer arr[] = {3,1117,213,543,12345678};

      Arrays.sort(array);                                     // [3,213,543,1117,12345678]
     

      Arrays.sort(arr,(a,b) -> a.compareTo(b));  // 오름차순 [3,213,543,1117,12345678]

      Arrays.sort(arr,(a,b) -> a-b);                      // 오름차순    

     

      Arrays.sort(arr,(a,b) -> b.compareTo(a));  // 내림차순 [12345678,1117,543,213,3]

      Arrays.sort(arr,(a,b) -> b-a);                      // 내림차순


compareTo( ) 메소드를 사용한 정렬

string1.compareTo(string2)
  • string1 > string2인 경우: 양의 정수 반환
  • string1 < string2인 경우: 음의 정수 반환
  • string1 == string2인 경우: 0 반환
public class Main {
  public static void main(String[] args) {
    System.out.println("apple".compareTo("orange")); // apple < orange
    System.out.println("AAA".compareTo("aaa")); // AAA < aaa
    System.out.println("ZZZ".compareTo("aaa")); // ZZZ < aaa
    System.out.println("zzz".compareTo("aaa")); // zzz > aaa
    System.out.println("strawberry".compareTo("strawberry")); // strawberry == strawberry
  }
}

 

출력:

-14
-32
-7
25
0

 

람다식을 이용한 array 배열 오름차순 정렬

  Arrays.sort(array , (a,b) -> a.compareTo(b));

 

람다식을 이용한 array 배열 내림차 정렬

  Arrays.sort(array , (a,b) -> b.compareTo(a));

 

https://mine-it-record.tistory.com/133

 

[JAVA] 자바_compareTo ( 값 [문자열/숫자] 비교 )

compareTo() - int compareTo(NumberSubClass referenceName) - int compareTo(String anotherString) - compareTo() 함수는 두개의 값을 비교하여 int 값으로 반환해주는 함수이다. compareTo() 함수에는 위에서 설명하는바와 같이 "

mine-it-record.tistory.com

 

 

 

 

Arrays.sort( )

1. String 타입의 정수배열을 sort()로 정렬하면 "숫자문자열"의 첫번째 index의 "숫자문자"에 따라 정렬된다.

ex) String array[] = {"3","1117","213","543","12345678"}

      Arrays.sort(array);                                  // ["1117","12345678","213","3","543"]

      Arrays.sort(arr,(a,b)->a.compareTo(b))  // 오름차순 : ["1117","12345678","213","3","543"]

      Arrays.sort(arr,(a,b)->b.compareTo(a))  // 내림차순 : ["543","3","213","12345678","1117"]

      Arrays.sort(arr,(a,b) -> a-b);                   // 실행안됨

   

2. Integer 타입의 정수배열을 sort()로 정렬하면 크기 순서대로 정렬된다.

(배열선언시 Class Type만 가능. Wrapper Class 사용하기)

ex) Integer arr[] = {3,1117,213,543,12345678};

      Arrays.sort(array);                                     // [3,213,543,1117,12345678]
     

      Arrays.sort(arr,(a,b) -> a.compareTo(b));  // 오름차순 [3,213,543,1117,12345678]

      Arrays.sort(arr,(a,b) -> a-b);                      // 오름차순    

     

      Arrays.sort(arr,(a,b) -> b.compareTo(a));  // 내림차순 [12345678,1117,543,213,3]

      Arrays.sort(arr,(a,b) -> b-a);                      // 내림차순