정렬(배열 OR 목록) x (내림차순 OR 오름차순)

자바의 배열(예: int[], 목록(예: ArrayList<Integer>의 재배열 방법을 총괄한다.전체 인코딩아래을 시도했습니다.
전제 조건
배열 및 목록 만들기
정렬의 대상은 다음과 같은 코드로 만들어졌다.
int[] intary = new int[10];  
ArrayList<Integer> intlist = new ArrayList<>(); 

for(int i = 0; i<10; i++){  
	intary[i] = (int)(Math.random()*100);  
	intlist.add((int)(Math.random()*100));  
}

System.out.println(Arrays.toString(intary)); 
	// [42, 33, 20, 17, 38, 95, 29, 47, 40, 4]
System.out.println(intlist);
	// [26, 44, 47, 68, 86, 63, 97, 53, 28, 16]
기본: 오름차순 및 내림차순
참고로 오름차순과 내림차순은 다음과 같다.
오름차순
내림차순
영어.
ascending order(ASC)
descending order(DESC)
기본 정렬 방법
작다-크다
크다 작다
예1
1,2,3,...,10
10,9,8,...,1
예2
a,b,c...,z
z,y,x,...,a
예3
aA1
1Aa

이런 기본적인 일들은 지금까지도 혼란스러운 부분이 많으니 낙서를 해서 기억해 보자.
다음은 구체적인 정렬 방법이다.기본 상승 서열의 정렬은 이미methods가 있기 때문에 대부분 간단한 처리로 끝납니다.
1. 오름차순으로 정렬
이것은 매우 간단하다.
Arrays.sort(intary);
System.out.println(Arrays.toString(intary)); 
결과:
[11, 17, 19, 23, 30, 41, 60, 61, 61, 92]
2. 내림차순Collections.reverseOrder() 내림차순으로 다시 정렬합니다.이를 위해, 진열의 유형을 wrapper class (이 경우 Integer 로 변환한 후의 진열로 따로 준비해야 한다.
Integer[] intary_desc = new Integer[intary.length];  
Arrays.setAll(intary_desc, i -> intary[i]);  
Arrays.sort(intary_desc, Collections.reverseOrder());

System.out.println(Arrays.toString(intary_desc));
결과
[98, 78, 61, 60, 57, 48, 43, 40, 37, 23]
https://stackoverflow.com/questions/31901543/array-sorting-descending-order
3. 목록을 오름차순으로 정렬
목록ArrayList에서 수반Collections의 방법을 사용할 수 있습니다[^1].여기서 sort()를 사용하여 순서를 변경합니다.
Collections.sort(intlist); 
System.out.println(intlist);
결과
[3, 18, 20, 21, 37, 45, 55, 70, 72, 74]
https://www.geeksforgeeks.org/how-to-sort-an-arraylist-in-ascending-order-in-java/
4. 목록 내림차순 정렬
상기3. 목록을 오름차순으로 정렬와 마찬가지로 Collections의 방법sort()을 사용하지만 두 번째 매개 변수로 비교기를 사용한다.
  • public static <T> void sort(List<T> list,Comparator<? super T> c)
  • Collections.sort(intlist, Collections.reverseOrder());  
    System.out.println(intlist);
    
    결과
    [89, 88, 81, 68, 63, 60, 52, 49, 46, 31]
    
    https://www.geeksforgeeks.org/how-to-sort-an-arraylist-in-descending-order-in-java/
    https://docs.oracle.com/javase/7/docs/api/java/util/Collections.html#sort(java.util.List, java.util.Comparator)
    테스트 코드
    
    public static void main(String[] args) {  
    
    	// Create array & list with int
    	int[] intary = new int[10];  
    	ArrayList<Integer> intlist = new ArrayList<>();  
    	for(int i = 0; i<10; i++){  
    		intary[i] = (int)(Math.random()*100);  
    		intlist.add((int)(Math.random()*100));  
    	}  
    
    	
    	System.out.println("Original Array");  
    	System.out.println(Arrays.toString(intary));  
    
    	// 1-1 & 2-1 Duplicate / Create arrays for test  
    	int[] intary_asc = intary;  
    	Integer[] intary_desc = new Integer[intary.length];  
    	Arrays.setAll(intary_desc, i -> intary[i]);  
    
    	// 1. Array in ascending order  
    	Arrays.sort(intary_asc);  
    	System.out.println("1. Array in ascending order");  
    	System.out.println(Arrays.toString(intary_asc));  
    
    	// 2. Array in descending order  
    	Arrays.sort(intary_desc, Collections.reverseOrder());  
    	System.out.println("2. Array in descending order");  
    	System.out.println(Arrays.toString(intary_desc));  
    
    	System.out.println("\nOriginal List");  
    	System.out.println(intlist);  
    
    	// 3-1 & 4-1 Duplicate lists for test  
    	ArrayList<Integer> intlist_asc = intlist;  
    	ArrayList<Integer> intlist_desc = intlist;  
    
    	// 3-2. List in ascending order  
    	Collections.sort(intlist_asc);  
    	System.out.println("3. List in ascending order");  
    	System.out.println(intlist_asc);  
    
    	// 4-2. List in descending order  
    	Collections.sort(intlist_desc, Collections.reverseOrder());  
    	System.out.println("4. List in ascending order");  
    	System.out.println(intlist_desc);  
    }
    
    
    결과 내보내기
    Original Array
    [58, 22, 33, 51, 9, 25, 28, 36, 91, 3]
    1. Array in ascending order
    [3, 9, 22, 25, 28, 33, 36, 51, 58, 91]
    2. Array in descending order
    [91, 58, 51, 36, 33, 28, 25, 22, 9, 3]
    
    Original List
    [2, 51, 65, 33, 12, 23, 26, 16, 66, 78]
    3. List in ascending order
    [2, 12, 16, 23, 26, 33, 51, 65, 66, 78]
    4. List in ascending order
    [78, 66, 65, 51, 33, 26, 23, 16, 12, 2]
    

    좋은 웹페이지 즐겨찾기