Arrays.sort() vs Collections.sort()
Arrays.sort()
- arrays 사용
- primitive data type이 아닌 Wrapper 클래스 (객체)를 사용 해야함
int[] test = new int[5]; // primitive 자료형 : 에러 남
Integer[] arr = new Integer[5];
오름차순
내림차순
Arrays.sort(arr, new Comparator<Integer>() {
@Override
public int compare(Integer o1, Integer o2) {
return Integer.compare(o2, o1);
}
});
Arrays.sort(arr2, new Comparator<String>() {
@Override
public int compare(String o1, String o2) {
return o2.compareTo(o1);
}
});
2차원 정렬
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
//0번째 인덱스 기준 정렬
return o1[0] - o2[0];
}
});
- 1번째 인덱스가 같을때 2번째 인덱스 오름차순 정렬
Arrays.sort(arr, new Comparator<int[]>() {
@Override
public int compare(int[] o1, int[] o2) {
if (o1[0] == o2[0]) {
return Integer.compare(o1[1], o2[1]);
}else
return Integer.compare(o1[0], o2[0]);
}
});
Collections.sort()
- Arrays List, Linked List와 같은 objects Collections에 사용
ArrayList<Integer> list = new ArrayList<Integer>();
LinkedList<String> list2 = new LinkedList<String>();
오름차순
내림차순
- Collections.reverseOrder () 사용
Collections.sort(list, Collections.reverseOrder());
전체소스보기
references
https://www.geeksforgeeks.org/sorting-in-java/?ref=lbp