Collections.sort()
시간복잡도
평균 : O(NlogN)
최악 : O(NlogN)
내부 알고리즘 : Timsort(삽입+병합 정렬)
Arrays.sort()
시간복잡도
평균 : O(NlogN)
최악 : O(N^2)
내부 알고리즘 : DualPivotQuicksort
Collections.sort() 사용법
public static void main(String[] args)throws IOException {
List<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(2);
numbers.add(1);
numbers.add(4);
Collections.sort(numbers);
bw.write(numbers.toString());
bw.flush();
bw.close();
}
Collections.sort() 내림차순
public static void main(String[] args)throws IOException {
List<Integer> numbers = new ArrayList<>();
numbers.add(5);
numbers.add(2);
numbers.add(1);
numbers.add(4);
Collections.sort(numbers,Collections.reverseOrder());
bw.write(numbers.toString());
bw.flush();
bw.close();
}
Collections.sort() 는 List.sort()로 대체 가능하다.
List.sort()
오름차순
numbers.sort(Comparator.naturalOrder());
내림차순
numbers.sort(Collections.reverseOrder());
Arrays.sort() 사용방법
public static void main(String[] args)throws IOException {
int[] numbers = new int[]{5, 2, 4, 1};
Arrays.sort(numbers);
bw.write(Arrays.toString(numbers));
bw.flush();
bw.close();
}
Arrays.sort() 내림차순
int배열이 아닌 Integer배열로 바꿔줘야함. (primitive타입이 아닌, wrapper 타입으로)
public static void main(String[] args)throws IOException {
int[] numbers = new int[]{5, 2, 4, 1};
Integer[] integerNumbers = Arrays.stream(numbers).boxed().toArray(Integer[]::new);
Arrays.sort(integerNumbers,Comparator.reverseOrder());
bw.write(Arrays.toString(integerNumbers));
bw.flush();
bw.close();
}
출처
https://codechacha.com/ko/java-sort-list/#2-listsort%EB%A1%9C-list-%EC%A0%95%EB%A0%AC
'자바 > ++' 카테고리의 다른 글
[Java] 나눗셈 (0) | 2022.12.04 |
---|---|
[Java] Split 메소드 문자열 자르기 (0) | 2022.12.03 |
[Java] BufferedReader, BufferedWriter (0) | 2022.12.03 |
자바 StringTokenizer 문자열분리,문자열구분! + split [미완] (0) | 2022.10.29 |
자바 1차원 배열,2차원 배열 출력하기 Arrays.toString(),Arrays.deepToString() (1) | 2022.10.28 |
댓글