🏃♂️ 들어가기 앞서..
본 게시물은 스터디 활동 중에 작성한 게시물로 자바의 정석-기초편 교재를 학습하여 정리하는 글입니다.
※ 스터디 Page : 〔투 비 마스터 : 자바〕
*해당 교재의 목차 순서와 구성을 참고하여 작성하며
각 내용마다 부족할 수 있는 내용이나 개인적으로 궁금한 점은
추가적인 검색을 통해 채워나갈 예정입니다.
※ 컬렉션 프레임웍
다수의 데이터 (데이터 그룹)를 저장하는 필요한 다양하고 풍부한 클래스들을 " 표준화 "한 설계
*인터페이스를 정의함으로서 표준화된 여러 컬렉션 클래스를 제공하고 있다.
우선 컬렉션 프레임웍에서는
컬렉션 데이터 그룹을 크게 3가지의 타입으로 취급한다.
밑에서 더 자세히 다루겠지만
Map은 Python에서 Dictionary라고 생각하면 쉬운데
〔 Key - Value 〕 형식이기 때문에 List와 Set과는 꽤 동떨어져있다.
또한 List와 Set의 공통부분이 서로 많기 때문에
저 3타입을 조금 더 체계화하여
이렇게 나눌 수 있다.
①
List
: 순서가 있는 데이터 집합 / 중복 허용
▶ (구현 클래스)ArrayList
/LinkedList
/Stack
/Vector
...②
Set
: 순서 유지 X 데이터 집합 / 중복 허용 X
▶ (구현 클래스)HashSet
/TreeSet
...③
Map
: 〔 Key - Value 〕 쌍으로 이루어진 데이터 집합
순서 유지 X
키(Key)는 중복 허용 X & 값(Value)은 중복 허용
▶ (구현 클래스)HashMap
/TreeMap
/Hashtable
/Properties
...
Collection
》 InterfaceList 와 Set의 조상 인터페이스로서
컬렉션을 다루는데 있어 가장 기본적인 메서드들을 정의하고 있다.
Method | 설명 |
---|---|
boolean add( Object o ) boolean addAll( Collection c ) | 지정 객체 / Collection 객체들을 Collection에 추가 |
Object[] toArray() | Collection 저장 객체를 " 객체배열 "로 반환 |
Object[] toArray( Object[] a ) | " 지정된 배열 "에 Collection의 객체를 저장해서 반환 |
Iterator iterator() | Collection의 iterator 얻어서 반환 |
Method | 설명 |
---|---|
void clear() | 전체 삭제 |
boolean remove( Object o ) | 지정 객체 삭제 |
boolean removeAll( Collection c ) | 지정 Collection에 포함된 객체 삭제 |
boolean retainAll( Collection c ) | 지정 Collection에 포함된 객체 제외 나머지 삭제 ( 변화 有 : true / 변화 無 : false ) |
Method | 설명 |
---|---|
boolean contains( Object o ) boolean containsAll( Collection c ) | 지정된 객체들이 Collection에 포함되어 있는지 확인 |
int hashCode() | 해시코드 반환 |
boolean equals( Object o ) | 동일한 Collection인지 비교 |
boolean isEmpty() | 비어있는지 확인 |
int size() | 저장된 객체의 개수 반환 |
📂 《
List
》 Interface:
Vetor
/ArrayList
(배열기반) /LinkedList
(Link 연결 기반) 등의 상속 인터페이스(Collection 인터페이스 상속받은 메서드는 제외)
※ 추가 / 수정
Method 설명 void add( int index, Object element )
boolean addAll( int index, Collection c )
지정 위치에 객체 추가
( 추가 )Object get( int index )
지정 위치의 객체 반환 ListIterator listIterator()
ListIterator listIterator( int index )
List의 객체에 접근할 수 있는 ListIterator 반환 Object set( int index, Object element )
지정 위치에 객체 저장
( 수정 )void sort( Comparator c )
지정 비교자로 List 정렬
※ 조회 / 탐색
Method 설명 int indexOf( Object o )
해당 객체의 위치 반환 int lastIndexOf( Object o )
해당 객체의 위치 반환
( 역순 )List subList( int fromindex, int toindex )
지정 범위의 객체를 반환
※ 삭제
Method 설명 Object remove( int index )
지정 위치 객체 삭제
▶ "삭제 객체 반환"
📂 《
Set
》 Interface:
HashSet
/TreeSet
/SortedSet
등의 상속 인터페이스
List와 공통점이 많기 때문에 기능적인 면에서의 큰 틀은 다르지 않지만
중복 허용이 안되고 순서가 없다는 List와의 차이점이 있기 타입과 매개변수의 구성이 차이가 있다.※ 메서드
Method 설명 boolean add( Object o )
boolean addAll( Collection c )
: 합집합지정 위치에 객체 추가
( 순서없어서 index 등의 매개변수 없음 )void clear()
전체 삭제 boolean contains( Object o )
boolean containsAll( Collection c )
: 부분집합지정된 객체들이 Collection에 포함되어 있는지 확인 int hashCode()
해시코드 반환 boolean equals( Object o )
동일한 Collection인지 비교 boolean isEmpty()
비어있는지 확인 Iterator iterator()
Collection의 iterator 얻어서 반환 boolean remove( Object o )
지정 객체 삭제 boolean removeAll( Collection c )
: 차집합지정 Collection에 포함된 객체 삭제 boolean retainAll( Collection c )
: : 교집합지정 Collection에 포함된 객체 제외 나머지 삭제
( 변화 有 :true
/ 변화 無 :false
)int size()
저장된 객체의 개수 반환 Object[] toArray()
Collection 저장 객체를 " 객체배열 "로 반환 Object[] toArray( Object[] a )
" 지정된 배열 "에 Collection의 객체를 저장해서 반환
Map
》 Iterface#
Hashtable
/HashMap
/LinkedHashMap
/SortedMap
/TreeMap
등의 상속 인터페이스
- (old)
Hashtable
: 동기화 ▶ (new)HashMap
: 동기화 XHashMap
: 순서 X ▶LinkedHashMap
: 연결된 Map
처음에 설명했든
키와 값의 쌍으로 묶어서 저장하는 컬렉션으로서
키는 중복될 수 없지만 값은 중복을 허용한다 는 특징이 있다.
주의할 점은
기존에 저장된 데이터와 중복된 키와 값을 저장하면
기존 값이 사라지고
" 마지막에 저장한 값 "이 남게 된다.
Method | 설명 |
---|---|
[ 검색 ] | |
boolean containsKey( Object key ) | 지정 key 객체와 " 일치하는 key 객체가 있는지 " 확인 |
boolean containsValue( Object value ) | 지정 value 객체와 " 일치하는 value 객체가 있는지 " 확인 |
Object get( Object key ) | 해당 key에 대응되는 value를 찾아서 반환 |
[ 추가 ] | |
Object put( Object key, Object value ) | 입력된 key와 value를 연결하여 저장 |
void putAll( Map t ) | 지정된 Map의 모든 쌍을 추가 |
[ 삭제 ] | |
Object remove( Object key ) | 해당 key를 가진 key-value 객체를 삭제 |
[ ★변환★ ] | |
Set entrySet() | Map의 모든 객체를 Entry타입으로 저장한 Set 타입으로 반환 |
Set keySet() | Map의 모든 key 객체를 Set 타입으로 반환 |
Collection values() | Map의 모든 value 객체를 Collection 타입으로 반환 |
* < 그 외 부가 메서드 : 앞서 알아본 Collection의 메서드와 동일 >
Method 설명 void clear()
전체 삭제 boolean equals( Object o )
동일한 Map인지 비교 int hashCode()
해시코드 반환 boolean isEmpty()
비어있는지 확인 int size()
저장된 객체의 개수 반환