☕️ 예시코드
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class Main {
public static void main(String[] args) { // 메인 함수 시작
System.out.println("== List ==");
List<Integer> ages = new ArrayList<>();
// 데이터 넣을 때는 편하다.(자동라벨링)
ages.add(10); // 철수나이
ages.add(20); // 영희나이
ages.add(30); // 영수나이
ages.add(1, 40); // 철희나이
ages.remove(0); // 철수 나이 삭제
// 데이터 가져올 때는 불편하다.(라벨(index, 번호)가 어떻게 바뀔 지 모르기 때문)
System.out.println("철희나이 : " + ages.get(0)); // 철희나이는 최종적으로 0번(index)에 저장되어 있음
System.out.println("== Map ==");
// 데이터 넣을 때는 불편하다.(수동라벨링)
Map<String, Integer> agesMap = new HashMap<>();
agesMap.put("철수", 10);
agesMap.put("영희", 20);
agesMap.put("영수", 30);
agesMap.put("철희", 40);
agesMap.remove("철수");
agesMap.get("영수");
// 데이터 가져올 때는 편하다.(라벨(index, 번호)가 절대 안바뀜)
System.out.println("철희나이 : " + agesMap.get("철희"));
}
}
리스트는 데이터를 추가하거나 접근할 때 인덱스를 사용하여 바르게 처리할 수 있지만, 특정 요소를 찾거나 삭제할 떄는 선형검색을 해야 하므로 비효율적일 수 있다.
반면에 맵은 데이터를 키-값 쌍으로 저장하여 빠르게 검색할 수 있지만, 데이터를 저장할 때 키와 값을 모두 제공해야 하므로 추가나 업데이트하는 과정이 복잡할 수 있다.