일반적으로 정렬 알고리즘 (Arrays.sort() , Collections.sort() ) 은 'compareTo' 메서드의 반환값을 기준으로 정렬을 수행한다. 객체들간의 비교를 진행 하기 위해서는 Comparable 인터페이스를 구현하여 'compareTo' 메서드를 항상 오버라이딩(Override)하여 재정의 하여 사용한다. 구현되어 있지 않으면, 정렬 알고리즘을 사용 할 수가 없다. compareTo 메서드 반환값 음수 compareTo메서드 반환값이 음수일 경우에는 현재 객체가 실제로 크던 작던 상관하지 않고, 비교 대상 객체보다 작은것으로 판단하여 현재 객체를 정렬시 앞쪽(=유지)에 위치하게 된다. 만약 현재 객체가 비교대상보다 작은 값이고 'compareTo' 메서드의 반환 값이 음수라면 현..
CTRL + SHIF + F 단축키를 이용해서 프로젝트 전체 파일 검색을 유용하게 사용하고 있었는데, 어느순간 갑자기 검색이 안되는 현상이 발생했다ㅠㅠㅠ 해결방법 File -> Invalidate Caches -> Invalidate and Restart 를 눌러 재시작하면 현상이 해결 된다~~
MYSQL vs Oracle 인덱스 차이 MySql과 Oracle은 인덱스 동작 방식에 있어서 약간의 차이가 존재한다. MySql에서는 일반적으로 한번의 쿼리에서는 하나의 인덱스만 사용됩니다. 즉, 여러 인덱스가 걸려있어도 MySQL의 옵티마이저가 쿼리 실행 계획을 결정할때 인덱스의 선택도(카티널리티)를 고려하여 최적의 인덱스 하나만 선택한다. 그렇기때문에 복수 컬럼을 동시에 인덱스를 태우고자 할 경우에는 복합 인덱스 하나만 사용해야 된다. 반면 Oracle은 비교적 더 복잡한 옵티마이저를 갖고 있어, 쿼리 실행 계획을 수립할때 다중 인덱스 조인이나 다중 칼럼 인덱스를 통해 여러 인덱스를 동시에 활영 할 수 있다. 다만, 무조건 Oracle에서도 모든 쿼리에서 여러 인덱스를 동시에 사용하는 것이 아니라 ..
[JAVA] 프로그래머스 Level1 [1차] 비밀지도 네오는 평소 프로도가 비상금을 숨겨놓는 장소를 알려줄 비밀지도를 손에 넣었다. 그런데 이 비밀지도는 숫자로 암호화되어 있어 위치를 확인하기 위해서는 암호를 해독해야 한다. 다행히 지도 암호를 해독할 방법을 적어놓은 메모도 함께 발견했다. 지도는 한 변의 길이가 n인 정사각형 배열 형태로, 각 칸은 "공백"(" ") 또는 "벽"("#") 두 종류로 이루어져 있다. 전체 지도는 두 장의 지도를 겹쳐서 얻을 수 있다. 각각 "지도 1"과 "지도 2"라고 하자. 지도 1 또는 지도 2 중 어느 하나라도 벽인 부분은 전체 지도에서도 벽이다. 지도 1과 지도 2에서 모두 공백인 부분은 전체 지도에서도 공백이다. "지도 1"과 "지도 2"는 각각 정수 배열로 암..