본문 바로가기

Java49

자바 중급 2편 - 순회, 정렬(2) 📌 정렬(Comparable & Comparator)package collection.compare;import java.util.Arrays;public class SortMain1 { public static void main(String[] args) { Integer[] array = {3,2,1}; System.out.println(Arrays.toString(array)); System.out.println("기본 정렬 후"); Arrays.sort(array); System.out.println(Arrays.toString(array)); }} 실행결과[3, 2, 1]기본 정렬 후[1, 2, 3]Arrays.sort(.. 2025. 8. 24.
자바 중급 2편 - 순회, 정렬(1) 📌 컬렉션 프레임워크 - 순회 (Iteration)1. 순회(Iterator)순회란 자료구조 내부의 데이터를 처음부터 끝까지 차례로 접근하는 과정이다.하지만 자료구조마다 순회 방법이 다르다.배열 리스트(ArrayList) → 인덱스를 0부터 size까지 증가연결 리스트(LinkedList) → node.next를 따라가며 끝(null)까지 이동즉, 자료구조별로 내부 구조를 알아야 순회가 가능하다 → 개발자가 불편하다 ❌👉 따라서 모든 자료구조를 동일한 방법으로 순회할 수 있도록 자바는 Iterable, Iterator 인터페이스를 제공한다.2. Iterable & Iterator 인터페이스public interface Iterable { Iterator iterator();} public int.. 2025. 8. 23.
자바 중급 2편 - Map, Stack, Queue 1. Map (맵)📖 Map의 특징키-값 쌍(Key-Value Pair) 으로 데이터를 저장키(Key) : 중복 불가, 유일해야 함값(Value) : 중복 허용저장 순서를 보장하지 않음 (단, 구현체에 따라 다름)📖 Map 주요 메서드 메서드설명put(K key, V value)키와 값을 저장 (같은 키 존재 시 값 교체)putIfAbsent(K key, V value)해당 키가 없는 경우에만 저장get(Object key)키에 해당하는 값 반환getOrDefault(Object key, V defaultValue)키가 없으면 기본값 반환remove(Object key)키와 값 삭제containsKey(Object key)특정 키 존재 여부containsValue(Object value)특정 값 존재.. 2025. 8. 21.
자바 중급 2편 - Set 1. Set 자료구조란?중복 불허 : 같은 값을 두 번 이상 저장할 수 없음순서 보장 X : 기본적으로 요소의 삽입 순서를 유지하지 않음.수학적 "집합(Set)" 개념을 자바에서 구현한 자료구조Set의 주요 구현체:HashSet → 순서 없음, 빠른 검색/저장LinkedHashSet → 삽입 순서 유지TreeSet → 값 기준 정렬 2. Set 인터페이스 주요 메서드메서드설명add(E e)요소 추가 (중복이면 무시)remove(Object o)요소 삭제contains(Object o)특정 요소 포함 여부 확인size()요소 개수 반환isEmpty()비어 있는지 확인clear()전체 삭제iterator()반복자 반환toArray()배열로 변환 3. HashSet 구현: 해시 자료구조 사용특징: 순서 보장 .. 2025. 8. 20.
자바 중급 2편 - HashSet(2) 1. MyHashSetV2: 모든 타입 저장하기 버킷 배열을 LinkedList[]로 바꿔서 모든 타입 저장 가능.해시 인덱스: Math.abs(value.hashCode()) % capacitybucket.contains(value) 호출 시 내부적으로 equals() 사용package com.example.collection.set;import java.util.Arrays;import java.util.LinkedList;import java.util.Objects;public class MyHashSetV2 { static final int DEFAULT_INITIAL_CAPACITY = 16; private LinkedList[] buckets; private int size =.. 2025. 8. 17.
자바 중급 2편 - HashSet(1) 1. 해시 자료구조와 hashCode()의 관계해시 자료구조(HashSet, HashMap 등)는 평균 O(1) 의 빠른 검색·저장을 제공.핵심 원리:객체를 정수 값(해시 코드) 로 변환이 해시 코드를 배열 인덱스(해시 인덱스) 로 변환하여 저장 위치 결정모든 타입(Integer, String, 사용자 정의 객체 등)을 저장하려면→ 모든 객체가 자신만의 해시 코드를 제공할 수 있어야 함. 2. Object.hashCode() 메서드public class Object { public int hashCode();} 기본 구현: 객체의 참조값(메모리 주소) 기반 해시 코드 생성인스턴스가 다르면 해시 코드도 다름대부분의 경우 오버라이딩(재정의) 해서 사용 3. 사용자 정의 객체에서 hashCode() 재정.. 2025. 8. 15.