람다로 하니까 편하네...
문자열의 경우 compareToIgnoreCase() 를 하면 대소문자 구분 하지 않고 정렬
//정수 배열 정렬
Integer[] i_arr = new Integer[]{1, 4, 2, 5, 3};
Arrays.sort(i_arr, (x,y)->{return y-x;});
Arrays.stream(i_arr).
forEach(x-> System.out.println("x = " + x));
System.out.println("=====================================");
//문자 배열 정렬
Character[] c_arr = new Character[]{'c','a','d','b','e',};
Arrays.sort(c_arr, (x,y)->{return x-y;});
Arrays.stream(c_arr).
forEach(x-> System.out.println("x = " + x));
System.out.println("=====================================");
//문자열 배열 정렬
String[] s_arr = new String[]{"aaa","aac","aab","aba","ccc"};
Arrays.sort(s_arr,(x,y)->{return x.compareToIgnoreCase(y);});
Arrays.stream(s_arr)
.forEach(x-> System.out.println("x = " + x));
System.out.println("=====================================");
//정수 리스트 정렬
List<Integer> i_list = Arrays.asList(5,2,3,1,4);
i_list.sort((x,y) -> x-y);
i_list.stream()
.forEach(x-> System.out.println("x = " + x));
System.out.println("=====================================");
//문자열 리스트 정렬
List<String> s_list = Arrays.asList("aaa", "bbb", "aab", "ccc", "caa", "cca");
s_list.sort((x,y)-> x.compareToIgnoreCase(y));
s_list.stream()
.forEach(x-> System.out.println("x = " + x));
오.. 우선순위 큐도 이렇게 하면 되는구나
//정수 우선순위큐 정렬
PriorityQueue<Integer> pq = new PriorityQueue<>((x, y) -> y - x);
pq.add(5);
pq.add(3);
pq.add(4);
pq.add(2);
pq.add(1);
pq.stream()
.forEach(x-> System.out.println("x = " + x));
System.out.println("==================================");
//문자열 우선순위 큐
PriorityQueue<String> s_pq = new PriorityQueue<>((x,y)->x.compareToIgnoreCase(y));
s_pq.add("bbb");
s_pq.add("baa");
s_pq.add("aaa");
s_pq.add("aca");
s_pq.stream()
.forEach(x-> System.out.println("x = " + x));