우선 나에게 있어서 객체에서 가장 중요하다고 생각하는 파트중 하나였다.
그래서 공부한것을 바탕으로 개념을 정리를 하고자 작성한다.
자바의 컬렉션 프레임워크란?
다수의 데이터 배열를 좀더 쉽고 효과적으로 처리할 수 있는 클래스의 집합을 의미
데이터를 저장하는 자료구조의 데이터를 처리하는 알고리즘을 구조화 한거라고 볼 수 있다.
이것을 클래스로 구현해놓은 것
위에 배열을 좀더 쉽고 효과적으로 처리할 수있다고 표현 했는데 배열은 정적메모리 할당이 였는데
컬렉션은 동적 메모리 즉, 공간이 필요한 만큼 추가할 수 있다는 점이다.
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값을 저장 / 검색속도 빠름
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를 삭제하고 리턴
'TIL' 카테고리의 다른 글
+7 자바 Calendar 클래스 (0) | 2023.06.17 |
---|---|
+6 예외처리 컴파일에러 / 런타임에러 / 예외클래스 (0) | 2023.06.17 |
+5 자바 숫자야구게임 구현 if문 for문 (0) | 2023.06.15 |
day +3 //Github 깃헙 fork clone branch pull push (0) | 2023.06.13 |
항해 day +2 HTTP GET방식 POST방식 (1) | 2023.06.09 |