728x90
List
- 순서를 유지하고 저장
- 중복 저장 가능
- 객체를 인덱스로 관리
- 객체의 주소를 저장
- ArrayList
- 제한 없이 객체 추가 가능
- 배열과 동일한 방식(삭제 혹은 삽입시 앞 혹은 뒤 객체들을 이동 시켜 인덱스 구성 맞춤)
- Collections.synchronizedList()메소드로 동기화 매핑 가능
- Vector
- synchronized 메소드로 구성되어져 있어 멀티 스레드가 동시에 실행 불가
- 멀티 스레드 환경에서 안전하게 객체 추가 및 삭제 가능
- LinkedList
- 인접 객체를 체인처럼 연결해서 관리
- 앞 뒤 링크만 변경하면 되므로 빈번한 삽입, 삭제 작업에 성능이 좋음
Set
- 순서를 유지하지 않고 저장
- 중복 저장 안됨
- 하나의 null만 저장 가능
- HashSet
- hashCode()의 리턴값이 같고, equals() 메소드가 true를 리턴하면 동등한 객체로 판단하여 중복 저장하지 않음
- for 문 혹은 iterator 객체를 얻어 반복해서 객체를 가져올 수 있음
- Collections.synchronizedSet()메소드로 동기화 매핑 가능
- TreeSet
- 이진 트리 기반
- 부모와 비교하여 낮은것은 왼쪽 높은것은 오른쪽에 저장
- Comparable 인터페이스를 구현한 객체 혹은 TreeSet 생성 시 Comparator 인터페이스를 구현한 객체를 매개변수로 전달한 객체만 정렬 가능
Map
- 키, 값으로 구성된 엔트리 저장
- 키는 중복 저장 단됨
- HashMap
- hashCode()의 리턴값이 같고, equals() 메소드가 true를 리턴하면 동등한 객체로 판단하여 중복 저장하지 않음
- Collections.synchronizedMap()메소드로 동기화 매핑 가능
- Hashtable
- synchronized 메소드로 구성되어져 있어 멀티 스레드가 동시에 실행 불가
- 멀티 스레드 환경에서 안전하게 객체 추가 및 삭제 가능
- TreeMap
- 이진 트리 기반
- 부모와 비교하여 낮은것은 왼쪽 높은것은 오른쪽에 저장
- Entry 객체 저장
- Comparable 인터페이스를 구현한 객체 혹은 TreeMap 생성 시 Comparator 인터페이스를 구현한 객체를 매개변수로 전달한 객체만 정렬 가능
- Properties
- Hashtable의 자식 클래스
- 프로퍼티 파일 읽을 때 주로 사용
Stack
- LIFO 의 구조를 가짐
- JVM의 스택 메모리가 대표적인 예시
- Deque로 구현 가능
Queue
- FIFO 의 구조를 가짐
- 스레드 풀이 대표적인 예시
- Dequq 혹은 LinkedList로 구현 가능
'BackEnd 학습 > Java' 카테고리의 다른 글
Java(자바) - 스트림 (0) | 2024.01.31 |
---|---|
Java(자바) - Thread(스레드) (0) | 2024.01.25 |
Java(자바) - 제너릭 (0) | 2024.01.25 |