컬렉션 프레임워크 - Map 소개 1Map 은 키-값의 쌍을 저장하는 자료 구조이다.키는 맵 내에서 유일해야 한다. 그리고 키를 통해 값을 빠르게 검색할 수 있다.키는 중복될 수 없지만, 값은 중복될 수 있다.Map은 순서를 유지하지 않는다. 자바는 HashMap, TreeMap, LinkedHashMap 등 다양한 Map 구현체를 제공한다. 이들은 Map 인터페이스의 메서드를 구현하며, 각기 다른 특성과 성능 특징을 가지고 있다. Map 인터페이스의 주요 메서드메서드 설명put(K key, V value)지정된 키와 값을 맵에 저장한다. (같은 키가 있으면 값을 변경)putAll(Map m)지정된 맵의 모든 매핑을 현재 맵에 복사한다.putIfAbsent(K key, V value)지정된 키가 없는 경..
Backend
자바가 제공하는 Set1 - HashSet, LinkedHashSet Set(셋, 세트) 자료 구조셋은 중복을 허용하지 않고, 순서를 보장하지 않는 자료 구조이다. 렉션 프레임워크 - SetCollenction 인터페이스Collenction 인터페이스는 java.util 패키지의 컬렉션 프레임워크의 핵심 인터페이스 중 하나이다. 이 인터페이스는 자바에서 다양한 컬렉션, 즉 데이터 그룹을 다루기 위해 메서드를 정의한다. Collention 인터페이스는 List, Set, Quere와 같은 다양한 하위 인터페이스와 함께 사용되며, 이를 통해 데이터를 리스트, 세트, 큐 등의 형태로 관리할 수 있다. Set 인터페이스자바의 Set 인터페이스는 java.util 패키지의 컬렉션 프레임워크에 속하는 인터페이스 ..
직접 구현하는 Set1 - MyHashSetV1Set은 중복을 허용하지 않고, 순서를 보장하지 않는 자료 구조이다. 문자열 해시 코드해시 코드와 해시 인덱스 자바의 hashCode()해시 인덱스를 사용하는 해시 자료 구조는 데이터 추가, 검색, 삭제의 성능이 O(1)로 매우 빠르다. 따라서 많은 곳에서 자주 사용된다. 그런데 앞서 학습한 것 처럼 해시 자료 구조를 사용하려면 정수로 된 숫자 값인 해시 코드가 필요하다. 자바에는 정수뿐만 아니라 String, double 등 많은 타입이 있으며 개발자가 정의한 사용자 정의 타입도 있다.이 모든 타입을 해시 자료 구조에 저장하려면 모든 객체가 숫자 해시 코드를 제공할 수 있어야 한다. Object.hashCode()자바는 모든 객체가 자신만의 해시 코드를 ..
리스트(List) vs 셋(Set)List (리스트)정의: 리스트는 요소들의 순차적인 컬렉션이다. 요소들은 특정 순서를 가지며, 같은 요소가 여러번 나타날 수 있다.특징:순서 유지: 리스트에 추가된 요소는 특정한 순서를 유지한다. 이 순서는 요소가 추가된 순서를 반영할 수 있다.중복 허용: 리스트는 동일한 값이나 객체의 중복을 허용한다.인덱스 접근: 리스트의 각 요소는 인덱스를 통해 접근할 수 있다. 용도: 순서가 중요하거나 중복된 요소를 허용해야 하는 경우 주로 사용된다. Set(셋)정의: 셋은 유일한 요소들의 컬렉션이다.특징:유일성: 셋에는 중복된 요소가 존재하지 않는다. 셋에 요소를 추가할 때, 이미 존재하는 요소면 무시된다.순서 미보장: 대부분의 셋 구현에서는 요소들의 순서를 보장하지 않는다. 즉..
리스트 추상화List 자료 구조순서가 있고, 중복을 허용하는 자료 구조를 리스트(List)라 한다. 인터페이스 도입 다형성과 추상화를 활용하면 클라이언트 코드를 변경하지 않고, 원하는 리스트 전략을 런타임에 지정할 수 있다. 의존관계 주입package collection.list;public class BatchProcessor { private final MyList list; public BatchProcessor(MyList list) { this.list = list; } public void logic(int size) { long startTime = System.currentTimeMillis(); for (int i = 0; i (..