컬렉션 프레임워크 -1

원종서·2022년 2월 24일
1

java

목록 보기
4/9

컬렉션 프레임워크의 핵심 인터페이스

  1. List -> Collection
    순서가 있는 데이터의 집합. 데이터 중복 허용
    ArrayList,, LinkedList, Stack, Vector
  2. Set -> Collection
    순서를 유지하지 않는 데이터 집합. 중복 허용 안함
    HashSet, TreeSet
  3. Map
    키와 값의 쌍으로 이뤄진 데이터의 집합
    순서는 유지되지 않으며, 키는 중복을 허용하지 않고 값은 허용함
    HashMap, TreeMap, HashTable, Properties..

Collection 인터페이스

List ,Set의 조상 인터페이스

메서드설명
boolean add(Object o)지정된 객체 또는 Collections 객체들을 Collection 에 추가
boolean addAll(Collections c)
void claerCollection 의 모든 객체 삭제
boolean contains(Object o )지정한 객체 또는 컬렉션의 객체들이 컬렉션에 포함되어있는지 확인
boolean contains(Collection c)
boolean eqauls(Object o)동일한 컬렉신인지 비교
int hasCode()컬렉션의 해쉬 코드를 반환
boolean isEmpty()컬렉션이 비었는지 확인
Iterator iterator()컬렉션의 이터레러를 얻어서 반환
boolean remove(Object o)지정된 객체 삭제
boolean removeAll(Collection c)지정된 컬렉션에 포함된 객체들 삭제
boolean retainAll(Collection c)지정된 컬렉션에 포함된 객체만을 남기고 다른 객체들은 컬렉션에서 삭제. 변화가 잇으면 참, 없으면 거짓
int size()저장된 갯수 반환
Object[] toArray컬렉션에 저장된 객체를 배열객체로 반환
Object[] toArray(Object[] a)지정된 배열에 컬렉션의 객체를 저장하여 반환

List 인터페이스

중복 허용, 저장순서 유지.
Vector ,Stack, ArrayList, LinkedList

메서드설명
void add(int index, Object o )지정한 위치에 객체 또는 컬렉션에 포함된 객체를 추가함.
boolean addAll(int index, Collection c)
E get(int index)지정된 위치의 객체를 반환
int indexOf(E e)지정된 객첵의 위치 반환, (첫번째 요소부터 찾음)
int lastIndexOf(E e)지정된 객체의 위치 반환(마지막 요소부터 찾음)
ListIterator listIterator()List의 객체에 접근할 수 있는 ListIterator 반환
ListIterator listIterator(int index)
E remove(int index)지정된 위치에 있는 객체 삭제하고 삭제된 객체 반환
E set(int index, E element)지정된 위치에 객체를 저장
void sort(Comparator c)지정된 비교자로 리스트 정렬
List subList(int fromIdx, int toIdx)지정된 범위에 있는 객체 반환

Set 인터페이스

중복을 허용하지 않으며 저장순서가 유지되지 않는 컬렉션 클래스를 구현하는데 사용.
HashSet, TreeSet

Map 인터페이스

키와 값을 하나의 쌍으로 묶어서 저장하는 컬렉션 클랙스를 구현하는데 사용. 키는 중복 허용 불가, 값은 중복 허용 가능.
Hashtable, HashMap, LinkedHashMap, SortedMap, TreeMap

메서드설명
void clear()맵의 모든 객체 삭제.
boolean containsKey(E key)지정된 키 객체와 일치하는 맵의 객체가 있는지 확인
boolean containsValue(E value)지정된 벨류 객체와 일치하는 맵의 벨류객체가 있는지 확인
Set entrySet()맵에 저장되어 있는 key-value 쌍을 Map.Entry타입의 객체로 저장한 Set을 반환함.
boolean equals(E e)동일한 맵인지 비교
E get(E key)지정한 키 객체에 대응하는 벨류객체를 찾아서 반환
int hashCode()해쉬코드 반환
boolean isEmpty()비었는지 확인
Set keySet()맵에 저장된 모든 키 객체 반환
Collection values()맵에 저장된 모든 벨류 객체를 반환.
E put(E key, E value)맵에 벨류 겍체를 키 객체에 연결 하여 저장
void putAll(Map t)지정된 맵의 모든 eky-value 쌍을 추가
E remove(E key)지정된 키객체와 일치하는 키-값 객체 삭제
int size()개수 반환

Map.Entry 인터페이스

MAp 인퍼테이스의 내부 인터페이스.

메서드설명
boolean equals(E e)동일한 Entry 인지 비교
E getKey()Entry의 키 객체를 반환
E getValue()Entry의 값 객체를 반환
int hashCode()Entry의 해쉬코드 반환
E setValue(E value)Entry의 벨류 객체를 지정한 객체로 바꿈

ArrayList

배열에 더 이상 저장할 공간이 없으면 보다 큰 새로운 배열을 생성하여 기존의 배열에 저장된 내용을 새로운 배열로 복사한 다음 저장된다.

메서드설명
ArrayList()크기가 10인 ArrayList 생성
ArrayList(Collection c)주어진 컬렉션이 저장된 ArrayList 생성
ArrayList(int initalCapacity)지정된 초기 용량 갖는 ArrayList 생성
boolean add(E e)ArrayList의 마지막에 객체 추가 성공시 참 반환
void add(int idx, E e)지정된 위치에 객체 저장
boolean addAll(Collection c)주어진 컬렉션의 모든 객체 저장
boolean addAll(int idx , Collection c)주어진 위치부터 컬렉션의 모든 객체 저장
void clear()ArrayList를 완전히 비운다
E clone()ArrayList를 복제한다.
boolean contains(E e)지정된 객체가 ArrayList에 포함되어 있는지 확인
void ensureCapacity(int minCapacity)ArrayList의 용량이 최소한 매개변수 값이 되도록 함
E get(int idx)지정된 위치의 객체 반횐
int indexOf(E e)지정된 객체가 저장된 위치를 반환
boolean isEmpty()ArrayList 비었는지 확인
Iterator iterator()ArrayList의 이터레이터 객체 반화ㅣㄴ
int lastIndexOf(E e)객체가 저장되었는지 끝 인덱스 부터 검색함
ListIterator listIterator()ArrayList의 리스트이터레이터를 반환
ListIterator listIterator(int idex)ArrayList의 지정된 위치부터 시작하는 리스트이터레이터를 반환
E remove(int idx)지정된 위치의 객체 삭제 후 반환
boolean remove(E e)지정된 객체를 제거 성공하면 트루, 실패 참
boolean removeAll(Collection c)컬렉션에 저장된 것과 동일한 객체를 ArrayList에서 제거
boolean retainAll(Collection c)ArrayList에 저장된 객체중 컬렉션과 공통된 것만 남기고 나머지는 삭제
E set(int idx, E e)주어진 객체를 지정된 위치에 저장
int size()사지으 반환
void sort(Comparator c)지정된 정렬기준으로 ArrayList 정렬
List subList(int formidx, int toIdx)
E[] toArray()
E[] toArray(E[] es)
void trimToSize()빈 공간을 없앤다.

Iterator ,ListIterator , Enumeration

컬렉션에 저장된 요소를 접근하는데 사용되는 인터페이스

Iterator

컬렉션 프레임워크에는 컬렉션에 저장된 요소를 읽어오는 방법을 표준화함.
컬렉션에 저장된 각 요소에 접근하는 기능을 가진 Iterator 인터페이스를 정의하고 Collection 인터페이스에는 Iterator를 반환하는
iterator() 를 정의함

메서드설명
boolean hasNext()읽어올 요소가 남았는지 확인. 있다면 참
E next()다음 요소를 읽어옴
void remove()next() 로 읽어온 요소를 삭제함

ListIterator , Enumeration

Iterator 는 단방향으로만 이동가능한 반면, ListIterator 는 양방향 으로 이동 가능하다.
다만 ArrayList, LinkedList 와 같이 List 인터페이스를 구현한 컬렉션만 가능.

메서드설명
boolean hasNext()읽어올 요소가 남았는지 확인. 있다면 참
boolean hasPrevious()일어 올 이전 요소가 남았는지 확인
E next()다음 요소를 읽어옴
E previous()이전 요소 읽어옴
int nextIndex()다음 요소의 인덱스 반환
int previousIndex()이전 요소의 인덱스 반환
void remove()next() 로 읽어온 요소를 삭제함
void set(E e)next(), previous() 로 읽어온 요소를 지정된 객체로 변경함.

Comparator , Comparable

Comparable 을 구현하고 있는 클래스들은 같은 타입의 인스턴스끼리 서로 비교할 수 있는 클래스들, 주로 래퍼클래스와 String, Date, File 과 같은 것들을이며 기본적으로 오름차순으로 구현되있음.

compare() ,compareTo() 는 선언형태와 이름만 다를 뿐 두 객체를 비교한다는 것은 같다.
두 객체 같으면 0 , 비교하는 값보다 작으면 음수, 크면 양수를 반환함.

Comparable 기본 정렬기준을 구현하는데 사용
Comparator 기본 정렬기준 외에 다른 기준으로 정렬하고자 할 때 사용

HashSet

은 Set 인터페이스를 구현한 가장 대표적 컬렉션
HashSet 은 저장순서 유지 않음, LinkedHashSet 은 저장순서 유지

메서드설명
HashSet()HashSet 객체 생성
HashSet(Collection c)컬렉션을 포함하는 HashSet 생성
HashSet(int initalCapcity)매개변수값을 초기용량으로 HashSet 생성
HashSet(int initalCapacity, float loadFactor)초기옹량과 load Factor 을 지정하는 생성자
boolean add(E e)객체 저장
boolean addAll(Collection c)컬렉션에 저장된 모든 객체들을 추가함 (합집합)
void clear()모든 객체 삭제
E clone()HashSet을 복제해서 반환 (얕은 복사)
boolean contains(E e)객체 포함 여부 반횐
boolean containsAll(Collection c)컬렉션에의 모든 객체를 포함 여부 반환
boolean isEmpty()비었는지 봔한
iterator iterator()
boolean remove(E e)삭제 성공 시 참
boolean removeAll(Collection c)차집합
boolean retainAll(Collection c)동일한 것만 남기고 삭제 (교집합)
int size()
E[] toArray()객체를 배열로 반환
E[] toArray(E[] a)객체들을 주어진 객체배열(a)로 담음

load Factor 를 0.8로 지정하면 저장공간에 80%가 채워졌을 시 용량이 두배로 증가함

0개의 댓글