-
JAVA_CollectionJAVA 2020. 9. 3. 17:06반응형
ArrayList
구조
- List<타입> 변수명 = new ArrayList<타입>()
장점
- 배열과 달리 사이즈를 선언 안해도 된다.
- 검색을 할 때 유리하다.
기능
- add → ArrayList안에 매개 변수를 추가한다.
- get → 매개 변수로 받은 인덱스에 있는 값을 반환한다.
- remove
- 매개 변수로 받은 인덱스의 값을 지운다.
- 매개 변수로 받은 해당 값을 지운다.
- size → 해당 list의 사이즈를 반환한다.
Arrays.asList()
Arrays의 ArrayList를 리턴한다.
원소를 추가하는 메서드는 가지고 있지 않기 때문에 사이즈를 바꿀 수 없다.
새로운 원소를 추가하거나 삭제 할 수 없다.
Vector
구조
- List<타입> 변수명 = new Vector<타입>()
특징
- 동기화된 메서드로 구성되어 있어 멀티 쓰레드가 동시에 실행할 수 없다.
- 멀티 쓰레드 환경에서 안전하게 객체를 추가 삭제 할 수 있다.
LinkedList
구조
- List<타입> 변수명 = new LinkedList<타입>()
장점
-
삽입 / 삭제를 할 때 유리하다.
-
Set
특징- 중복을 허용하지 않는다.
- 순서를 유지 하지않는다.
- HashSet, LinkedHashSet,TreeSet
- 객체 삽입
- add(), 리턴 boolean → 매개변수를 객체에 추가
- 객체 검색
- isEmpty(), 리턴 boolean → 객체가 비어있으면 true, 아니면 false 반환
- contains(), 리턴 boolean → 매개변수 값이 포함되어 있으면 true, 아니면 false 반환
- size(), 리턴 int → 해당 객체의 사이즈를 반환
- iterator(), 리턴 Iterator<E>
- 객체 삭제
- clear()
- remove(), 리턴 boolean, 매개변수 객체
-
Iterator (반복자)
특징- 반복이 필요할때 많이 사용
- hasNext(), 리턴 boolean ,있는지없는지
- next(), 리턴 E ,다음값을 가져옴
- remove(), 리턴 ,void
-
Map
특징- key와value로 구성된다.
- 중복저장 x 값은 같은값이 있을 수 있다.
- 동일한 key에 값을 다시 넣으면 기존 값을 없어지고 새로운 값으로 업데이트 된다.
- HashMap, HashTable, LinkedHashMap, Properties, TreeMap 등..
- 추가
- put() 주어진 키와 값을 추가, 저장 후 값(Value) 리턴
- 검색
- boolean containsKey(Object key) 주어진 키가 있는지 확인
- boolean containsValue(Object value) 주어진 값이 있는지 확인
- Set<Map.Entry<K, V>> entrySet()
- V get(Object key) key에 해당되는 값을 리턴
- Set<K> keySet() 모든 key를 Set에 담아서 리턴
- int size() key의 개수를 리턴
- Collection<V> values() 저장된 모든 값을 Collection에 담아 리턴
- 삭제
- void clear()
- V remove(Object key)
-
HashTable
- HashMap과 동일한 내부구조를 가지고 있고 차이점은 동기화(synchronized)된 메소드로 구현되어있다.
-
이진 트리
- 최상위 노트에서 자식 노드 로 뻗어 나가는 나무 형태로 구성되어있다.
- 부모 노드 하나의 최대 두개의 자식 노드를 가질 수 있다.
- 두개의 노드가 위아래로 연결되어 있을 때 위에 노드는 부모, 아래 노드는 자식으로 정의한다.
- 값을 추가할 때 부모 노드 보다 작은 값은 왼쪽 자식 노드, 큰 값을 오른쪽 자식 노드에 저장한다.
-
TreeSet
특징- 이진트리를 사용해 검색기능을 강화한 컬렉션
- 자동정렬 기능이 있다.
- first()
- 제일 낮은 객체를 리턴, 리턴타입 E
- last()
- 제일 높은 객체를 리턴, 리턴타입 E
- lower(E e)
- 주어진 객체보다 바로 아래 객체를 리턴
- higher(E e)
- 주어진 객체보다 바로 위 객체를 리턴
- floor(E e)
- 주어진 객체와 동등한 객체가 있으면 리턴, 만약 없으면 주어진 객체의 바로 아래의 객체를 리턴
- ceiling(E e)
- 주어진 객체와 동등한 객체가 있으면 리턴, 만약 없으면 주어진 객체의 바로 위의 객체를 리턴
- pollFirst()
- 제일 낮은 객체를 꺼내오고 컬렉션에서 제거
- pollLast()
- 제일 높은 객체를 꺼내오고 컬렉션에서 제거
-
TreeMap
특징- Key와 Value로 구성된 이진 트리 구조
- 부모 노드의 키 값을 기준으로 엔트리를 구성한다.
- 특정 객체를 찾거나 범위 검색을 할때 주로 사용한다.
- firstEntry() return Map.Entry<K,V>
- 제일 낮은 객체를 리턴
- lastEntry() return Map.Entry<K,V>
- 제일 높은 객체를 리턴
- lowerEntry(K k) return Map.Entry<K,V>
- 주어진 키보다 바로 아래 객체를 리턴
- higherEntry(K k) return Map.Entry<K,V>
- 주어진 키보다 바로 위 객체를 리턴
- floorEntry(K k) return Map.Entry<K,V>
- 주어진 키와 동등한 키가 있으면 해당 객체를 리턴
- 만약 동등한 키가 없으면 바로 아래의 객체를 리턴
- ceilEntry(K k) return Map.Entry<K,V>
- 주어진 키와 동등한 키가 있으면 해당 객체를 리턴
- 만약 동등한 키가 없으면 바로 위의 객체를 리턴
- pollFirstEntry() return Map.Entry<K,V>
- 제일 낮은 객체를 꺼내 오고 컬렉션에서 제거
- pollLastEntry() return Map.Entry<K,V>
- 제일 높은 객체를 꺼내 오고 컬렉션에서 제거
LIFO(Last In First out)
후입 선출 ( 마지막에 넣은 객체가 맨 처음에 꺼내 진다.)
Stack<E> s = new Stack<E>();
- push(E item) : 주어진 객체를 스택에 넣는다.
- pop() : 스택의 맨 위 객체를 리턴, 해당 객체를 스택에서 제거
- peek() : 스택의 맨 위 객체를 리턴, 스택에서 제거 하지 않는다.
FIFO(First In First Out)
선입 선출 (처음에 넣은 객체가 맨 처음에 꺼내 진다.)
Queue<E> q = new LinkedList<E>();
- offer(E item) : 주어진 객체를 큐에 넣는다.
- poll() : 큐의 맨 위 객체를 리턴, 해당 객체를 큐에서 제거
- peek() : 큐의 맨 위 객체를 리턴, 큐에서 제거 하지 않는다.
반응형'JAVA' 카테고리의 다른 글
JAVA_Parallel Operation (0) 2020.09.03 JAVA_Stream (0) 2020.09.03 JAVA_Generic (0) 2020.09.03 JAVA_Exception (0) 2020.09.03 JAVA_Thread (0) 2020.09.03