반응형
컬렉션 (Collection)
- Java에서는 다양한 자료형의 데이터를 처리하기 위한 컬렉션 프레임워크를 제공, 이를 사용하여 데이터의 저장, 검색, 삭제 등의 작업을 보다 효율적으로 처리할 수 있다.
인터페이스 분류
Collection
- List
- ArrayList, Vector, LinkedList
- 순서를 유지하고 저장
- 중복 저장 가능
- Set
- HashSet, TreeSet
- 순서를 유지하지 않고 저장
- 중복 저장 안됨
Map
- HashMap, Hashtable, TreeMap, Properties
- 키와 값으로 구성된 엔트리 저장
- 키는 중복 저장 안됨
List 컬렉션
- List는 순서가 있는 데이터의 모음, 중복된 데이터를 허용하며, 인덱스를 사용하여 데이터에 접근할 수 있다, ArrayList, LinkedList, Vector 등의 구현체가 있다.
객체 추가
- add(값) - 주어진 객체를 맨 뒤에 추가
- add(인덱스, 값) - 주어진 인덱스에 객체를 추가
- set(인덱스, 값) - 주어진 인덱스에 객체을 변경
객체 검색
- contains(값) - 주어진 객체가 저장되어 있는지 조사
- get(인덱스) - 주어진 인덱스의 저장된 객체를 읽음
- isEmpty() - 컬렉션이 비어있는지 조사
- size() - 전체 객체 수
객체 삭제
- clear() - 저장된 모든 객체 삭제
- remove(인덱스) - 주어진 인덱스에 저장된 객체 삭제
- remove(값) - 저장된 객체 삭제
ArrayList
ArrayList<E> list = new ArrayList<E>(); // <E>에 저장된 타입의 객체만 저장
ArrayList<E> list = new ArrayList<>();
ArrayList list = new ArrayList(); // 모든 타입 객체 저장
// 동기화
ArrayList<E> list = Collections.synchronizedList(new ArrayList<E>());
Set 컬렉션
- Set은 중복을 허용하지 않는 데이터의 모음, 순서가 보장되지 않으며, 데이터를 추가하거나 삭제할 때는 인덱스를 사용할 수 없다. HashSet, TreeSet 등의 구현체가 있다.
- 수학의 집합에 비유될 수 있다.
객체 추가
- add(값) - 성공적으로 저장하면 true 리턴 실패하면 false 리턴
객체 검색
- contains(값) - 주어진 객체가 저장되어 있는지 조사
- isEmpty() 컬렉션이 비어있는지 조사
- size() - 객체 수 리턴
- Iterator<E> iterator() - 저장된 객체를 한 번씩 가져오는 반복자 리턴
객체 삭제
- clear() - 객체 전체 삭제
- remove(값) - 주어진 객체 삭제
HashSet
HashSet<E> set = new HashSet<E>(); // <E>에 지정된 타입 객체만 저장
HashSet<E> set = new HashSet<>();
HashSet set = new HashSet(); // 모든 타입 객체 저장
// 동기화
HashSet<E> set = Collections.synchronizedSet(new HashSet<E>());
Map
- Map은 키-값 쌍으로 이루어진 데이터의 모음, 중복된 키는 허용하지 않으며, 값은 중복될 수 있다. HashMap, TreeMap, Hashtable 등의 구현체가 있다.
객체 추가
- put(키, 값) - 주어진 키와 값을 추가
객체 검색
- containsKey(키)
- containsValues(값)
- Set<Map.Entry<키,값>>entrySet() - Set에 담아 리턴
- get(키) - 주어진 키의 값을 리턴
- isEmpty() - 컬렉션이 비어있는지 검사
- Set<키> keySet() - 모든 키를 Set에 담아 리턴
- size() - 저장된 키의 총 수를 리턴
- Collection<값> valuse() - 저장된 모든 값 Collection에 담아 리턴
객체 삭제
- clear() - 모든 Map.Entry 삭제
- remove(키) - 주어진 키와 일치하는 Entry 삭제
HashMap
HashMap<K,V> map = new HashMap<K,V>();
HashMap<K,V> map = new HashMap<>();
// 동기화
HashMap<K,V> map = Collections.synchronizedMap(new HashMap<K,V>());
Stack
- 후입 선출 구조로써 나중에 들어온 객체가 가장 먼저 나가는 자료 구조 - LIFO
Stack<E> stack = new Stack<E>();
Stack<E> stack = new Stack<>();
객체 추가
- push() - 주어진 객체를 스택에 삽입
객체 삭제
- pop() - 스택에 가장 마지막 객체를 삭제한 후 삭제한 객체를 리턴한다.
객체 검색
- peek() - 가장 마지막 객체를 리턴한다.
- search() - 파라미터로 들어온 객체의 인덱스 위치를 반환
- empty() - 컬렉션이 비어있는지 조사
Queue
- 선입 선출 구조로써 먼저 들어온 객체가 가장 먼저 나가는 자료 구조 - FIFO
Queue<E> queue = new Queue<E>();
Queue<E> queue = new Queue<>();
'Backend > Java' 카테고리의 다른 글
Java - 5분만에 하는 JDK 설치 및 환경 변수 설정 (0) | 2023.08.02 |
---|---|
Java - 스레드 (Thread) (0) | 2023.02.23 |
Java - 예외 (0) | 2023.02.22 |
Java - 익명 클래스, 익명 객체 (0) | 2023.02.22 |
Java - 중첩 클래스 (0) | 2023.02.22 |
댓글