국비지원 공부 정리/Java

Collection FrameWork - Map, Set, List

worldstroy 2025. 4. 9. 13:01

Collection FrameWork 

객체의 그룹을 효율적으로 관리하기 위한 다양한 클래스와 인터페이스를 제공함
객체들을 효율적으로 추가, 삭제, 검색할 수 있도록 인터페이스와 클래스들을 java.util 패키지에 포함

 

 

Collection FrameWork 의 상속 구조

 

List, Set 객체를 추가, 삭제 검색하는 방법에 때한 공통점이 존재해 공통된 메소드만 따로 모아 Colllection 인터페이스로 정의해두고 이를 상속함
Map 키와 값을 하나의 쌍으로 묶어서 관리하는 구조로 List, Set과 사용하는 방법이 틀림

 


List란?

요소의 순서를 유지하고 저장하며 중복된 요소를 허용하는 컬렉션

 

List의 종류

ArrayList ArrayList는 List 인터페이스의 동적 배열 구현
초기 크기가 있지만, 요소가 추가됨에 따라 자동으로 크기가 확장되는 방식
배열 기반이므로 인덱스를 사용한 요소 접근이 빠르지만, 중간에 요소를 삽입하거나 삭제하는 연산은 느리다.
LinkedList List와 Deque 인터페이스의 양방향 연결 리스트 구현
연결 리스트 기반이므로 중간에 요소를 삽입하거나 삭제하는 연산이 빠르지만, 인덱스를 사용한 요소 접근은 느린 편 

List 컬렉션에서 사용 가능한 메서드 

기능 메소드 설명
객체 추가 boolean add(E e) 주어진 객체를 맨 끝에 추가
void add(int index, E element) 주어진 인덱스에 객체를 추가
set(int index, E element) 주어진 인덱스의 객체를 새로운 객체로 변경시킴.
index가 지정된 add와 다른 점은 기존 객체가 뒤로 밀려나지 않고 교체되는 것
객체 검색 boolean contains(Object o) 주어진 객체가 저장되었는지 여부
E get(int index) 주어진 인덱스에 저장된 객체 리턴
isEmpty() 컬렉션이 비어있는지 여부를 나타냄
int size() 컬렉션에 저장된 전체 객체 수 리턴
객체 삭제 void clear() 저장된 모든 객체 삭제
E remove(int index) 주어진 인덱스에 저장된 객체 삭제
boolean remove(Object o) 주어진 객체 삭제

 

 

 


Set란?

List와 달리 중복된 요소를 저장할 수 없으며, 순서를 보장하지 않는 컬렉션

 

Set의 종류

HashSet 대표적인 클래스로 해시 테이블을 사용하여 요소를 저장
순서를 보장하지 않으며, 동일한 객체는 중복 저장하지 않음
LinkedHashSet HashSet을 확장한 버진이며, 요소의 삽입 순서를 기억함
요소의 삽입 순서대로 반복됨
TreeSet 이진 검색 트리 자료구조의 형태로 데이터를 저장
자동으로 정렬된 순서로 요소를 저장하며, 사용자 정의 정렬도 가능함

 

 

Set에서 사용 가능한 메소드 

 

기능 메소드 설명
객체 추가 boolean add(E e) 주어진 객체를 저장하며, 중복된 요소가 없다면 true, 있다면 false를 반환
객체 검색 boolean contains(Object o) 주어진 객체가 저장되어 있는지 여부
isEmpty() 컬렉션이 비어 있는지 여부
Iterator <E> iterator() 저장된 객체를 한 번씩 가져오는 반복자 리턴
int size() 컬렉션에 저장된 전체 객체 수 리턴
객체 삭제 void clear() 저장된 모든 객체 삭제
boolean remove(Object o) 주어진 객체를 삭제

 


Map이란?

키와 값으로 구성된 Entry 객체를 저장하는 데이터 구조
각 키는 고유해야 하며 값은 중복될 수 있는 것이 특징

 

Map에 포함되는 녀석들

 

HashMap 해시 테이블을 사용하여 키-값 쌍을 저장함
순서를 보장하지 않음
LinkedHashMap HashMap을 확장하여 키-값 쌍의 삽입 순서나 접근 순서를 기억함
순서가 중요한 경우에 유용
TreeMap 키에 따라 자동으로 정렬
숫자-> 알파벳 대문자 -> 알파벳 소문자 -> 한글 순으로 정렬

 

Map에서 사용 가능한 메소드 

 

기능 메소드 설명
객체 추가 V put(K key, V value) 주어진 키와 값을 추가, 저장되면 값 리턴
객체 검색 boolean containsKey(Object key) 주어진 키가 있는지 여부 확인
boolean containsValue(Object value) 주어진 값이 있는지 여부 확인
Set<Map.Entry<K,V>> entrySet() 키와 값을 쌍으로 구성된 모든 Map.Entry 객체를 Set에 담아 리턴
V get(Object key) 주어진 키의 값을 리턴
boolean isEmpty() 컬렉션이 비어 있는지 여부
Set<K>  keySet() 모든 키를 Set 객체에 담아서 리턴
int size() 저장된 키의 총 개수를 리턴
Collection<V> values() 저장된 모든 값 Collection에 담아서 리턴
객체 삭제 void clear() 모든 Map.Entry(키와 값)을 삭제
V remove(Object key) 주어진 키와 일치하는 Map.Entry 삭제, 삭제되면 값을 리턴