본문 바로가기
반응형

전체 글95

[java] Map-HashMap, LinkedHashMap, TreeMap ✅ 자바 Map 인터페이스 주요 구현체 비교 구분 HashMapLinkedHashMapTreeMapHashtable (레거시)기본 구조해시 테이블해시 테이블 + 입력 순서 유지이진 검색 트리 (Red-Black Tree)해시 테이블정렬 여부❌ 없음 (순서 불확정)✅ 입력한 순서 유지✅ 키 기준 자동 정렬 (Comparable or Comparator)❌ 없음 (순서 불확정)null 허용 여부✅ null 키 1개, null 값 여러 개 허용✅ 동일❌ null 키 허용 안 함❌ null 키/값 모두 허용 안 함동기화 (Thread-safe)❌ 비동기화❌ 비동기화❌ 비동기화✅ 내부적으로 동기화됨 (성능 낮음)성능빠름 (O(1) 평균)약간 느림 (순서 관리 비용)느림 (O(log N))가장 느림레거시 여부✅ .. 2025. 5. 2.
[java] Set-HashSet, LinkedHashSet, TreeSet Set은 배열을 중복제거하고 싶을 때 사용한다.Set에 추가하려면 add하면 된다. 구분 HashSet LinkedHashSetTreeSet중복 제거✅ 가능✅ 가능✅ 가능정렬 순서 유지❌ 순서 없음 (무작위)✅ 입력한 순서 유지✅ 오름차순속도O(1)로 보통 더 빠름O(1)로 약간 느림 (순서 유지 오버헤드)O(log N) (이진 트리 기반)사용 목적순서 상관없는 중복 제거중복 제거 + 입력 순서 유지 필요 시 정렬된 집합이 필요할 때 (예: 순위, 정렬 출력) 중복제거 (순서필요)예시:import java.util.*;String[] arr = {"apple", "banana", "apple", "orange", "banana"};Set set = new LinkedHashSet(Arrays.asLi.. 2025. 5. 2.
[java] switch/case 문 switch/case 구조문:switch(입력변수) { case 입력값1: ... break; case 입력값2: ... break; ... default: ... break;}if-else if-else문을 switch문으로 바꿀 수 있다.break를 쓰면 해당 case만 실행하고 swich문을 빠져나가고, 만약 break를 쓰지 않는다면 참인 것 아래 case들 다 실행된다.default문은 생략가능하고 사용할 시 case문을 실행하고 마지막으로 무조건 실행된다. Java에서 switch 문에서 break 문이 있을 때와 없을 때의 동작 차이✅ break가 있을 때int num = 2;switch (num) { case 1: .. 2025. 5. 2.
[java] 이클립스 단축키 모음 Ctrl + D : 한줄삭제Ctrl + Alt + ↑, ↓ : 한줄 위 또는 아래로 복붙 Alt + ↑, ↓ : 행 이동Ctrl + I : 자동 줄 맞춤Ctrl + / : 한줄 주석 처리Ctrl + F11 : 실행(Run)Ctrl + Shift + O : 자동 import(필요한 패키지 추가)F11 : 디버깅Ctrl + Shift + B: 토글 브레이크포인트 2025. 5. 2.
[java] 삼항연산자 Java에서는 if-else문을 삼항연산자를 통해 한 줄로 코드를 작성할 수 있다.먼저, 삼항연산자의 구조는 아래와 같다.조건식 ? 참일때값 : 거짓일때값;예시:int number = 4;String result = (number % 2 == 0) ? "짝수" : "홀수";System.out.println(result); // 짝수 Java에서는 if-else if-else if-else와 같은 다중 if문을 중첩삼항연산자를 통해 한 줄로 코드를 작성할 수도 있다.중첩 삼항 연산자 구조:조건1 ? 반환값1 : 조건2 ? 반환값2 : 조건3 ? 반환값3 : 기본값;예시:int score = 85;String grade = (score >= 90) ? "A" : (score >= .. 2025. 4. 9.
[MySQL] COUNT(*) vs EXISTS 성능 개선 차이 먼저, 데이터 존재 여부를 체크하기 위해 COUNT(*) 혹은 COUNT(1)이 사용되는 것을 확인할 수 있다.둘은 같은 의미이고, 개발자마다의 스타일 차이이다. COUNT(*)로 존재 여부를 체크하거나 COUNT(1)로 쿼리를 짜서체크하는 코드를 볼 수 있지만, 가독성을 위해 COUNT(*) 사용하는 것을 추천한다. COUNT(!)의 의미를 몰라 검색해 보거나, 설명해야 하는 불필요한 상황이 발생할 수 있으니 가급적 공용화된 COUNT(*)로 데이터 존재 여부를 체크하길 바란다. 자, 이제 그러면존재 여부를 체크하기 위해 COUNT(*)를 쓸 것 인가, EXISTS를 쓸 것인가 차이가 궁금할 것이다.결론은,  대용량 데이터가 있을 때 훨씬 EXISTS의 속도가 더 빠르다.COUNT는 모든 행을 검사하고.. 2025. 3. 8.
반응형