[JAVA] 컬렉션 프레임웍 : 핵심 인터페이스

DongGyu Jung·2022년 2월 17일
0

자바(JAVA)

목록 보기
30/60
post-thumbnail

🏃‍♂️ 들어가기 앞서..

본 게시물은 스터디 활동 중에 작성한 게시물로 자바의 정석-기초편 교재를 학습하여 정리하는 글입니다.
※ 스터디 Page : 〔투 비 마스터 : 자바〕

*해당 교재의 목차 순서와 구성을 참고하여 작성하며
각 내용마다 부족할 수 있는 내용이나 개인적으로 궁금한 점은
추가적인 검색을 통해 채워나갈 예정입니다.




핵심 인터페이스

※ 컬렉션 프레임웍
다수의 데이터 (데이터 그룹)를 저장하는 필요한 다양하고 풍부한 클래스들을 " 표준화 "한 설계
인터페이스를 정의함으로서 표준화된 여러 컬렉션 클래스를 제공하고 있다.

우선 컬렉션 프레임웍에서는
컬렉션 데이터 그룹을 크게 3가지의 타입으로 취급한다.

  • List
  • Set
  • Map

밑에서 더 자세히 다루겠지만
Map은 Python에서 Dictionary라고 생각하면 쉬운데
Key - Value 〕 형식이기 때문에 List와 Set과는 꽤 동떨어져있다.

또한 List와 Set의 공통부분이 서로 많기 때문에
저 3타입을 조금 더 체계화하여

  • Collection (List&Set의 상위 인터페이스)
  • Map

이렇게 나눌 수 있다.

List

: 순서가 있는 데이터 집합 / 중복 허용
▶ (구현 클래스) ArrayList / LinkedList / Stack / Vector ...

Set

: 순서 유지 X 데이터 집합 / 중복 허용 X
▶ (구현 클래스) HashSet / TreeSet ...

Map

: Key - Value 쌍으로 이루어진 데이터 집합
순서 유지 X
키(Key)중복 허용 X & 값(Value)중복 허용
▶ (구현 클래스) HashMap / TreeMap / Hashtable / Properties ...



💼 《 Collection 》 Interface

List 와 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 : 동기화 X
  • HashMap : 순서 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()저장된 객체의 개수 반환

0개의 댓글