컬렉션 프레임워크란?
- 객체들을 효율적으로 추가, 삭제, 검색 할 수 있도록 java.util 패키지에 컬렉션과 관련된 인터페이스와 클래스들을 포함 한 것
- 자바 컬렉션은 객체를 수집해서 저장하는 역할
사진 참조 : https://coding-factory.tistory.com/550
[Java] 자바 컬렉션 프레임워크(List, Set, Map) 총정리
컬렉션 프레임워크란? 배열을 사용하다 보면 여러가지 비효율적인 문제가 생깁니다. 가장 큰 문제점은 크기가 고정적이라는 것입니다. 배열의 크기는 생성할 때 결정되며 그 크기를 넘어가게
coding-factory.tistory.com
Collection 유형
• List 인터페이스 (ArrayList, Vector, LinkedList 클래스 들은 List를 상속받아 구현한 클래스)
- 순서를 유지하고 저장, 중복 저장 기능
- List<G> list = new [ ArrayList | Vector | LinkedList ] <G>();
-1) ArrayList
- 객체가 인덱스로 관리되며 객체 추가 및 삭제 시 인덱스가 1씩 추가되거나 삭제되어 검색에서는 좋지 않다
- Arrays.asList(T...a) 메소드를 사용하여 고정된 객체로 구성된 ArrayList를 생성할 수 있다.
-2) Vector
- ArrayList와 비슷하나 다른점은 동기화된 메소드로 구성 되어 있어 하나의 스레드가 실행을 완료해야하만 다른 스레드를 실행 할 수 있다.
-3) LinkedList
- ArrayList와 사용방법은 동일하지만 내부적 구조가 다르다, ArrayList와 달리 객체 인접 참조를 링크하여 관리함으로 특정 인덱스의 객체를 제거하면 앞뒤 링크만 변경되고 나머지 링크는 변경되지 않는다.
- 객체의 삭제와 삽입이 빈번한 경우 사용되기 좋은 List 컬렉션
※ 끝에서 부터 추가/삭제 하는 경우는 ArrayList가 빠르며, 중간에 추가 또는 삭제하는 경우는 LinkedList 가 좋다.
• Set 인터페이스 (HashSet,TreeSet 클래스 들은 List를 상속받아 구현한 클래스)
- 순서를 유지하지 않고 저장, 중복 저장 안 됨
- 인덱스로 관리하지 않기 때문에 인덱스를 매개값으로 갖는 메소드가 없다.
- 전체 객체를 대상으로 한번씩 반복해서 가져오는 반복자(Iterator)을 제공
- Set<G> = new [ HashSet | TreeSet]<G>();
-1) HashSet
- 객체들을 순서 없이 저장하고 동일한 객체는 중복 저장하지 않는다
• Map 인터페이스 (HashMap,HashTable,TreeMap,Properties 클래스 들은 List를 상속받아 구현한 클래스)
- 키와 값의 쌍으로 저장 (key,value), 키는 중복 저장 안됨
- 키가 중복저장 된다면 마지막에 설정된 key값으로 사용된것이 저장된다.
- Map<K,V> map = new [ HashMap | HashTable | TreeMap | Properties ]<K,V>();
- HashMap과 HashTable의 차이점은 HashTable은 동기화된 메소드로 구성 되어있다.
• 후입선출(LIFO : Last In First Out)
- 나중에 들어온 객체가 처음으로 빠진다 (stack)
• 선입선출(FIFO : First In Fisrt Out)
- 처음에 들어온 객체가 처음으로 빠진다 (queue)
'JAVA' 카테고리의 다른 글
Optional 클래스 (0) | 2021.07.14 |
---|---|
일급 컬렉션 (First Class Collection) (0) | 2021.07.13 |
프로세스와 쓰레드 (0) | 2021.07.09 |
상속 (0) | 2021.07.07 |
equals()와 hashCode() 함수 차이 (0) | 2021.07.03 |