TIL

+4 자바 컬렉션 set list map

JAVABOZA 2023. 6. 15. 00:23

우선 나에게 있어서 객체에서 가장 중요하다고 생각하는 파트중 하나였다.

 

그래서 공부한것을 바탕으로 개념을 정리를 하고자 작성한다.

 

자바의 컬렉션 프레임워크란?

다수의 데이터 배열를 좀더 쉽고 효과적으로 처리할 수 있는 클래스의 집합을 의미

 

데이터를 저장하는 자료구조의 데이터를 처리하는 알고리즘을 구조화 한거라고 볼 수 있다.

 

이것을 클래스로 구현해놓은 것

 

위에 배열을 좀더 쉽고 효과적으로 처리할 수있다고 표현 했는데 배열은 정적메모리 할당이 였는데

 

컬렉션은 동적 메모리 즉, 공간이 필요한 만큼 추가할 수 있다는 점이다.

 

List형 / Set형 / Map형

 

List - 대표적으로 ArrayList / LinkedList / Vector 

- 가장 크게 중복되는 데이터를 저장할 때 쉽게 배열로 생각 하자

 

ArrayList  // 가변길이의 배열을 할 때 사용

- (((중복 가능 ))) // (( 순서 유지))

 

- 배열의 특징을 가지고 있다.

 

- 배열처럼 각 데이터의 인덱스값을 가지고 있어 조회 기능에 좋음, 그래서 검색에 빠름, 

 

- but 데이터의 중간중간 추가 삭제가 느리다.

 

LinkedList

- 검색이 느리다.

 

- 양방향 포인터 구조로써 데이터의 수정이 많을 경우 좋음

 

add() : 주어진 객체를 마지막에 추가
add(index, element) : 주어진 인덱스에 객체 추가
set(index, element) : 주어진 인덱스에 저장된 객체를 주어진 객체로 바꾼다
contatins() : 주어진 객체가 있는 지 파악
get(index) : 저장된 객체 리턴
isEmpty() : 컬렉션에 값이 있는지 판단
size() : 저장된 전체 객체수 리턴
clear() : 저장된 모든 객체 삭제
remove() : 주어진 전체 객체 삭제

Set - 대표적으로 HashSet / TreeSet

xxxxxxxx  중복 허용 xxxxxxxx 

xxxxxxxx 순서 유지 xxxxxxxx

 

객체를 중복해서 저장 할 수없기에 null 값도 한번만 저장

 

HashSet - 빠른 접근 속도를 가지고 있음

TreeSet - 정렬방법 지정 가능

 

대표적인 메서드

add() : 주어진 객체를 저장
contains () : 객체가 있는지 여부 판단
Iterator<E> iterator() : 저장된 객체를 한번씩 가져오는 반복자를 리턴
isEmpty() : 컬렉션에 값이 있는지 판단
size() : 저장된 객체수 리턴
clear() : 저장된 모든 객체 삭제
remove() : 주어진 전체 객체 삭제

 

 

Map - 대표적으로 HashSet / TreeSet

- key 와 value 가 한쌍으로 이루어진 자료형

- key 값이 중복허용 x , 순서 유지 x , but value 값은 중복허용

 

HashTable - null값 입력 x

HashMap - null값 입력 o

TreeMap - 정렬된 순서대로 key , value값을 저장 / 검색속도 빠름

 

TreeMap 이미지

put(key, value) : 주어진 key 값과 value 값을 저장 // list ,set 의 add 와 비슷
containsKey() : 주어진 key가 있는지 확인
containsValue() : 주어진 value가 있는지 확인
Set<Map.Entry<K,V>> entrySet() : 모든 Map.Entry개체를 Set에 담아 리턴
Set<K> keySet() : 모든 키를 set 객체에 담아 리턴
get(Key) : 주어진 키에 있는 value값을 리턴
isEmpty() : 컬렉션이 비어있는지 확인
size() : 저장된 전체 객체수 리턴
Collection<V> values() : 저장된 모든값을 Collection에 담아 리턴
Clear () : 저장된 모든 Map.Entry 삭제
remove(Key) : 주어진 키와 일치하는 Map.Entry를 삭제하고 리턴