Comparator, Lamda 사용하여 2차원 배열 정렬하기
2차원 배열을 바로 Arrray.sort()를 통해 정렬하려고 하면 java.lang.ClassCastException: I cannot be cast to java.lang.Comparable 오류가 발생합니다. 원인은 비교 기준이 구현되어 있지 않기 때문에 캐스팅에 실패했기 때문이라 아래와 같이 Comparable,Comparator 인터페이스를 구현하여 정렬기준을 추가해 줘야 합니다. 2차원배열 뿐만 아니라 객체비교할 때도 동일한 유사하니 참고해주세요. 1. Comparator 익명 클래스 구현 int[][] arr = new int[][]{{5,40},{3,50},{1,30},{4,20},{2,10}}; // 1. Comparator 익명 클래스 구현 Arrays.sort(arr, new Comp..
2024. 2. 20.
int[] -> List<Integer> 반환? 메소드 리턴타입을 바꾸자
https://school.programmers.co.kr/learn/courses/30/lessons/42840 import java.util.*; class Solution { public int[] solution(int[] answers) { int[] user1 = {1,2,3,4,5}; int[] user2 = {2,1,2,3,2,4,2,5}; int[] user3 = {3,3,1,1,2,2,4,4,5,5}; //맞춘 개수를 담을 배열 int[] cnt = {0,0,0}; //가장 많이 맞춘 사람 넣는 리스트 List list = new ArrayList(); for(int i=0;i
2024. 2. 19.
Arrays.sort( ) - String 타입 / Integer 타입
Arrays.sort( ) 1. String 타입의 정수배열을 sort()로 정렬하면 "숫자문자열"의 첫번째 index의 "숫자문자"에 따라 정렬된다. ex) String array[] = {"3","1117","213","543","12345678"} Arrays.sort(array); // ["1117","12345678","213","3","543"] Arrays.sort(arr,(a,b)->a.compareTo(b)) // 오름차순 : ["1117","12345678","213","3","543"] Arrays.sort(arr,(a,b)->b.compareTo(a)) // 내림차순 : ["543","3","213","12345678","1117"] Arrays.sort(arr,(a,b) -> a-..
2024. 2. 15.