자바 컬렉션 프레임워크의 상속 구조입니다.
Collection 인터페이스는 List, Set, Queue로 크게 3가지 상위 인터페이스로 분류할 수 있습니다.
그리고 여기에 Map의 경우 Collection 인터페이스를 상속받고 있지 않지만 Collection으로 분류됩니다.
여기서 많이쓰는 것은
List, ArrayList, Map, HashMap 정도이다.
인터페이스 | 구현클래스 | 특징 |
Set | HashSet TreeSet |
순서를 유지하지 않는 데이터의 중복을 허용하지 않습니다. |
List | LinkedList Vector ArrayList |
순서가 있는 데이터의 집합으로 데이터의 중복을 허용 |
Queue | LinkedList PriorityQueue |
List와 유사합니다. |
Map | Hashtable HashMap TreeMap |
Key, Value로 이루어진 데이터의 집합 순서는 유지되지 않고, Key값이 중복이면 안되지만 value값의 중복은 허용 |
1. Set 인터페이스
순서를 유지하지 않는 데이터의 집합으로 데이터의 중복을 허용하지 않습니다.
- HashSet
- 가장빠른 임의 접근 속도
- 순서를 예측할 수 없습니다. - TreeSet
- 정렬방법을 지정할 수 있습니다.
2. List 인터페이스
순서가 있는 데이터의 집합으로 데이터의 중복을 허용
- LinkedList
- 양방향 포인터 구조로 데이터의 삽입, 삭제가 빈번할 경우 데이터의 위치정보만 수정하면 되기에 유용
- 스택, 큐, 양방향 큐 등을 만들기 위한 용도 - Vector
- 과거에 대용량 처리를 위해 사용했으며, 내부에서 자동으로 동기화처리가 일어나 비교적 성능이 좋지 않고 무거워 잘 쓰이지 않습니다. - ArrayList
- 단방향 포인터 구조로 각 데이터에 대한 인덱스를 가지고 있어 조회 기능에 성능이 뛰어납니다.
3. Map 인터페이스
키(Key), 값(Value)의 쌍으로 이루어진 데이터의 집합으로,
순서는 유지되지 않으며 키(Key)의 중복을 허용하지 않으나 값(Value)의 중복은 허용
- Hashtable
- HashMap보다는 느리지만 동기화 지원
- null이 불가 - HashMap
- 중복과 순서가 허용되지 않으며 null값이 올 수 있습니다. - TreeMap
- 정렬된 순서대로 키(Key)와 값(Value)을 저장하여 검색이 빠릅니다.
출처: https://gangnam-americano.tistory.com/41
웹 개발에서의 사용예시
List, ArrayList, Map, HashMap 을 예로 들어보겠습니다.
List, ArrayList
List<String, Object> examList = new ArrayList<String, Object>();
Map, HashMap
Map<String, Object> examMap = new HashMap<String, Object>();
ListMap
public List<Map<String, Object>> selExamList() {
List<Map<String, Object>> examList = new ArrayList<Map<String, Object>>();
Map<String, Object> examMap = new HashMap<String, Object>();
examMap = sqlSessionTemplate.selectOne("Mapper.selExamList");
examList.add(examMap);
return examList;
}
'Web Programming > Java' 카테고리의 다른 글
[React + SpringSecurity + DB] 로그인 구현하기 (Backend) (0) | 2024.01.18 |
---|---|
[SpringBoot] Controller, Service, Dao 등과 Mapper(Mybatis) 의 type 관계 (오류해결) / CRUD 중 R이 예시 (0) | 2023.11.28 |
[java] 배열을 이용한 for문 만들기 (0) | 2023.10.27 |
[JAVA/SPRING] 방어적 코딩 하기 (NPE(NullPointerException)피하는 방법) (0) | 2023.04.04 |
[Java / JSP] DTO 자동으로 설정하는 방법 (0) | 2022.10.02 |