[Java] 자바 배열 정렬하기(오름차순, 내림차순) Arrays.sort()

    자바에서 배열이나 리스트를 정렬하려고 한다면 java.util.Arrays 클래스의 sort() 메서드를 사용하시면 따로 정렬 로직을 짜지 않아도 한번의 메소드 호출로 간편하게 배열이나 리스트를 정렬할 수 있습니다. Arrays클래스는 배열의 복사, 항목 정렬, 검색과 같은 배열을 조작 기능을 가지고 있습니다. 

     

     배열의 오름차순 정렬 

    Arrays.sort()메서드의 매개값으로 기본 타입 배열이나 String배열을 지정해주면 자동으로 오름차순 정렬이 됩니다.

    기본타입 배열 오름차순 정렬

    import java.util.Arrays;
    
    public class Sort{
        public static void main(String[] args)  {
            int arr[] = {4,23,33,15,17,19};
            Arrays.sort(arr);
            
            for (int i : arr) {
                System.out.print("["+i+"]");
            }
        }
    }
    

    배열 오름차순 정렬

     

    String 배열 오름차순 정렬

    import java.util.Arrays;
    
    public class Sort{
        public static void main(String[] args)  {
            String arr[] = {"apple","orange","banana","pear","peach","melon"};
            Arrays.sort(arr);
            
            for (String i : arr) {
                System.out.print("["+i+"]");
            }
        }
    }
    

    배열 오름차순 정렬2

     

     배열의 내림차순 정렬 

    배열을 내림차순으로 정렬할 때는 Collections 클래스의 reverseOrder() 함수를 사용하면 됩니다. 만약 기본 타입 배열을 내림차순으로 정렬하고 싶다면 기본 타입의 배열을 래퍼클래스로 만들어 Comparator를 두번째 인자에 넣어주어야 역순으로 정렬할 수 있습니다.

    ※ String은 기본 타입이 아님

     

    기본타입 배열 내림차순 정렬

    import java.util.Arrays;
    
    public class Sort{
        public static void main(String[] args)  {
            Integer arr[] = {4,23,33,15,17,19};
            Arrays.sort(arr,Collections.reverseOrder());
            
            for (int i : arr) {
                System.out.print("["+i+"]");
            }
        }
    }
    

    배열 내림차순 정렬

     

    String 배열 내림차순 정렬

    import java.util.Arrays;
    
    public class Sort{
        public static void main(String[] args)  {
            String arr[] = {"apple","orange","banana","pear","peach","melon"};
            Arrays.sort(arr,Collections.reverseOrder());
            
            for (String i : arr) {
                System.out.print("["+i+"]");
            }
        }
    }
    

    배열 내림차순 정렬2

     

     배열 일부분만 정렬 

    Arrays.sort()메서드의 매개값으로 배열, 시작 index, 끝 index를 넣어주면 일부분만 정렬할 수 있습니다.

    import java.util.Arrays;
    
    public class Main{
       public static void main(String[] args)  {
            int arr[] = {4,23,33,15,17,19};
    
            Arrays.sort(arr, 0, 4); // 0,1,2,3 요소만 정렬
            
            for (int i : arr) {
                System.out.print("["+i+"]");
            }
        }
    }
    

    배열 일부분 정렬

     

     객체 배열 정렬 

    객체로 이루어진 배열의 경우에는 객체 클래스가 Comparable인터페이스의 compareTo() 메서드를 구현하고 있어야 정렬이 됩니다. 예제는 나이별로 사람들을 정리하는 예제입니다.

    import java.util.Arrays;
    
    class People implements Comparable {
    
        private String name;
        private int age;
        
        public People(String name, int age){
            this.name = name;
            this.age= age;
        }
    
        public String print(){
            return name+"("+age+")";
        }
    
        @Override
        public int compareTo(People people) {
             // TODO Auto-generated method stub
             if (this.age < people.age) {
                 return -1;
             } else if (this.age == people.age) {
                 return 0;
             } else {
                 return 1;
             }
         }
    }
    
    public class Sort{
         public static void main(String[] args)  {
             People[] arr = { new People("상현", 20)
                , new People("철수", 14)
                , new People("경완", 31)
                , new People("대호", 40)
                , new People("지운", 24) 
            };
    		
            Arrays.sort(arr); //오름차순 정렬
    		
            for (People i : arr) { //오름차순 출력
                System.out.print("["+i.print()+"]");
            }
    		
            Arrays.sort(arr,Collections.reverseOrder()); //내림차순 정렬
            System.out.println();
    		
            for (People i : arr) { //내림차순 출력
                System.out.print("["+i.print()+"]");
            }
        }
    }
    

    자바 배열 정렬

    댓글

    Designed by JB FACTORY