List, Set, Map, HashMap의 특성
List
- 순서가 있는 데이터의 집합으로 중복값을 허용한다.
- 데이터를 인덱스로 접근 가능. 인덱스는 0부터 시작하여 데이터의 순서를 의미한다.
- 대표적인 구현 클래스로 'ArrayList'와 'LinkedList'가 있다.
Set
- 순서가 없는 데이터의 집합으로, 중복된 값을 허용하지 않는다.
- 데이터를 추가할 때 중복된 값이 이미 존재하는 경우 추가되지 않는다.
- 대표적인 구현 클래스로 'HashSet'과 'TreeSet'이 있다.
Map
- key-value 쌍의 데이터를 저장하는 자료구조이다. key는 고유해야 하며, key를 통해 value에 접근할 수 있다.
- Map은 key의 순서를 보장하지 않는다.
- 대표적인 구현 클래스로 'HashMap', 'TreeMap', 'LinkedHashMap' 등이 있다.
HashMap
- 해시 테이블을 사용하여 key-value쌍의 데이터를 저장하는 자료구조이다.
- 많은 양의 데이터를 빠르게 조회하고 검색하는데 적합하다.
- 순서를 보장하지 않으며, 중복된 key를 허용하지 않는다.
- null key와 null value를 허용한다.
활용 예시
import java.util.*;
public class DataStructuresExample {
public static void main(String[] args) {
// List 예시: 물건 목록 저장
List<String> itemList = new ArrayList<>();
itemList.add("사과");
itemList.add("바나나");
itemList.add("딸기");
itemList.add("오렌지");
System.out.println("물건 목록: " + itemList);
// Set 예시: 중복 없는 숫자 목록 저장
Set<Integer> numberSet = new HashSet<>();
numberSet.add(1);
numberSet.add(2);
numberSet.add(3);
numberSet.add(2); // 중복된 값이므로 추가되지 않음
System.out.println("중복 없는 숫자 목록: " + numberSet);
// Map 예시: 학생 정보 저장
Map<String, Integer> studentInfoMap = new HashMap<>();
studentInfoMap.put("홍길동", 20);
studentInfoMap.put("김철수", 18);
studentInfoMap.put("이영희", 19);
System.out.println("학생 정보: " + studentInfoMap);
// HashMap 예시: 이름과 나이를 매핑
HashMap<String, Integer> ageMap = new HashMap<>();
ageMap.put("Alice", 25);
ageMap.put("Bob", 30);
ageMap.put("Charlie", 22);
System.out.println("이름과 나이 매핑: " + ageMap);
}
}
--------------------------------------------------------------------------------
결과
물건 목록: [사과, 바나나, 딸기, 오렌지]
중복 없는 숫자 목록: [1, 2, 3]
학생 정보: {김철수=18, 이영희=19, 홍길동=20}
이름과 나이 매핑: {Alice=25, Bob=30, Charlie=22}
'자바 탐구' 카테고리의 다른 글
스프링) @SpringBootTest와 @WebMvcTest의 차이 (0) | 2023.07.25 |
---|---|
스프링) RestClient (0) | 2023.07.25 |
스프링) 스프링 컨테이너(Spring Container) (0) | 2023.07.24 |
스프링) 의존성 주입(Dependency Injection) 방식 (0) | 2023.07.22 |
JPA) 영속성 컨텍스트 (0) | 2023.07.21 |