초보 개발자의 스터디룸

[Java] 오름차순과 내림차순(sort, reverseOrder, reverse)

justdoIT0730 2022. 12. 4. 14:12
728x90
728x90

ArrayList에서 사용 가능한 메서드 중 오름차순과 내림차순 기능을 하는 메서드에 대해 알아보자. 

위에서 사용된 예제를 이용.

import java.util.*;

public class Q {
public static void main(String[] args) { 
    ArrayList list1 = new ArrayList(10); //1
    list1.add(5);
    list1.add(4);
    list1.add(2);
    list1.add(0);
    list1.add(1);
    list1.add(3);

    ArrayList list2 = new ArrayList(list1.subList(1, 4));			//1
    print(list1, list2);

    Collections.sort(list1);							//2
    Collections.sort(list2);
    print(list1, list2);

    System.out.println("list1.containAll(list2) : "+ list1.containsAll(list2));	//3
    list2.add("B");
    list2.add("C");	
    list2.add(3,"A");								//4
    print(list1, list2);

    list2.set(3, "AA");								//5
    print(list1, list2);

    System.out.println("list1.retainAll(list2) : " +list1.retainAll(list2));	//6
    print(list1, list2);

    for(int i=list2.size()-1; i>=0; i--) {
        if(list1.contains(list2.get(i))) {
            list2.remove(i);							//7
        }
    }
    print(list1, list2);
}

static void print (ArrayList list1, ArrayList list2) {
    System.out.println("list1 : " + list1);
    System.out.println("list2 : " + list2);
    System.out.println();
}
}

//2 : 오름차순과 내림차순에 대해 알아보자!

ArrayList list1 = new ArrayList(10);
    list1.add(5);
    list1.add(4);
    list1.add(2);
    list1.add(0);
    list1.add(1);
    list1.add(3);

 

// 2.1.1 ArrayList 배열 내 요소 오름차순 : Collections.sort

Collections.sort(list1);
list1.sort(null);
list1.sort(Comparator.naturalOrder());

✓ list1 출력 결과 : [0, 1, 2, 3, 4, 5]

 

sort메소드에 대한 java doc에서는 list.sort(null)은 list.sort(Comparator.naturalOrder()) 와 같다고 설명하고 있으며, 실제로도 같다

 

// 2.1.2 ArrayList 배열 내 요소 내림차순 : Collections.reverse 

Collections.sort(list1);
Collections.reverse(list1);

✓ list1 출력 결과 : [5, 4, 3, 2, 1, 0]

내림차순 기능을 하는 메서드는 Collections.reverseOrder()이나, ArraysList에서는 지원을 하지 않는다. 

그래서 오름차순 sort를 하고,

 

배열의 순서를 반대로 받게하는 reverse 메서드를 사용하여 내림차순을 하였다.

 

 

728x90

 

//example
String [] e = {"1", "2","3","4","5"};


// 2.2.1  배열 내 요소 오름차순 : Arrays.sort :Arrays.sort(a);

Arrays.sort(e);

✓ e 출력 결과 : [1, 2, 3, 4, 5]

- 배열 e  내 요소들을 오름차순으로 정렬

 

// 2.2.2  배열 내 요소 내림차순 : Collections.reverseOrder() : Arrays.sort(arr, Collections.reverseOrder());

Arrays.sort(e, Collections.reverseOrder());

✓ e 출력 결과 : [5, 4, 3, 2, 1]

- //2.2.1 에서 Arrays.sort()를 이용한 배열 arr내 요소들의 오름차순을 내림차순으로 정렬

- String, Integer, Double 과 같은 Object type 배열에서 정렬 지원 : int 지원 X

 

 

 

 

 

[출처]

https://manorgass.tistory.com/60

 

Java :: ArrayList 정렬을 위한 sort 메소드 파해치기

개요 필자는 모 사이트에서 프로그래밍 문제를 해결하던 중, 입력된 데이터를 오름차순으로 정렬하여 리턴하라는 문제가 있어 해당 메소드에 대해 알아보았다. List에는 데이터 정렬을 위한 sort

manorgass.tistory.com

 

728x90
728x90