Collection과 비교했을 때, 배열의 문제점
컬렉션 프레임워크
List | Set | Map |
---|---|---|
순서 유지하며 저장 | 순서유지하지않고 저장 | 키와 값의 쌍으로 저장 |
중복저장가능 | 중복저장불가 | 키는 중복저장 불가 |
E
> 긱체가 제너릭 인터페이스이므로 자식 클래스도 제네릭 클래스이므로 타입을 지정해야한다. List<E> list = new ArrayList<E>();
List<E> vector = new Vector<E>();
List<E> linkedList = new LinkedList<E>();
List<Integer> list = new ArrayList<Integer>();
boolean list.add(int value); //리스트 마지막에 추기
void list.add(int index, int value); //인덱스 위치에 원소 추가
boolean list.addAll(Collection<? Extends E> c);
E list.set(int index, E element);
E list.remove(int index);
boolean list.remove(E element); //동일한 객체 삭제
void list.clear();
E list.get(int index);
int list.size();
boolean list.isEmpty();
Object[] list.toArray(); //리스트를 Object 배열로 변환
T[] list.toArray(T[] t); //T 타입의 배열로 변환
List<Integer> linkedList = new LinkedList<Integer>();
Set<Element> set = new Set<Element>();
boolean set.add(E e);
boolean set.addAll(Collection<? Extends E> c);
boolean set.remove(Object o);
void set.clear();
boolean set.isEmpty();
boolean set.contains(Object o)
int set.size();
Interator<E> iteratior(); //객체 내의 데이터를 연속으로 꺼내는 Iterator 객체 리턴
Object[] set.toArray();
T[] set.toArray(T[] t);
E
> 클래스 메소드 boolean hasNext();
E next();
Set<String> hSet = new HashSet<String>();
Iterator<String> iterator = hSet.iterator();
while(iterator.hasNext()){
System.out.print(iterator.next() + " ");
}
for(String s : hSet){
System.out.print(s + " ");
}
TreeSet<String> treeSet = new TreeSet<String>();
E treeSet.first();
E treeSet.last();
E treeSet.lower(E element); //매개변수로 입력된 원소보다 작은, 가장 큰 수
E treeSet.higher(E element); //매개변수로 입력된 원소보다 큰, 가장 작은 수
E treeSet.floor(E element);
key-value 한 쌍의 데이터를 저장하며 이를 '엔트리'라고 정의한다.
key값을 이용하여 검색이 가능하며 중복이 되지않으므로 구분도 가능하다.
V put(K key, V value);
void putAll(<? extends K, ? extends V> m);
V replace(K key, V value); //데이터 변경
boolean replace(K key, V oldValue, V newValue);
V get(Object key);
boolean containsKey(Object key);
boolean containsValue(Object value);
Set<K> ketSet(); //Map 객체 중 Key들만 뽑아 Set 객체로 리턴
Set<Entry<K,V>> entrySet();
int size();
V remove(Object key);
boolean remove(Object key, Object value);
void clear();
E
>으로 선언해야 사용할 수 있다.E push(E item); //매개변수 item을 Stack에 추가
E peek(); //최상위 원소값 리턴
int search(Object o); //위치값 리턴, 맨위가 1 아래로 갈수록 1씩 증가
E pop(); //최상위 원소 꺼내고 데이터 개수 감소
boolean empty();
FIFO(선입선출) 방식을 이용한다.