달마루
기획자에서 개발자로
달마루
전체 방문자
오늘
어제
  • 분류 전체보기 (345) N
    • 기획 이야기 (3)
    • 개발자로 전향한 이유 (1)
    • Github Address (1)
    • 개발자, 그 여정 (11)
      • 기초특강 (4)
      • 국비학원 선정 (4)
      • BitCamp_수업내용 (1)
      • 학원 프로젝트 후기 (1)
      • 정보처리기사 (1)
      • 개발 이야기 (0)
    • 개념 창고 (137) N
      • JAVA (54) N
      • CS (1)
      • Database (28)
      • NetWork (4)
      • 자료 구조 (2)
      • React (8)
      • Spring (5)
      • JPA (2)
      • HTML & CSS (18)
      • JS (4)
    • algorithm (186)
      • 백준 (161)
      • 프로그래머스 (23)
    • 사는 이야기 (0)

블로그 메뉴

  • Github
  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • 자바
  • Bronze IV
  • BOJ algorithm
  • 백준
  • 프로그래머스
  • 혼자공부하는SQL
  • 백준알고리즘
  • select
  • Algorithm
  • sql 문제풀이
  • SQL
  • MySQL
  • BRONZE
  • math
  • 혼공SQL
  • java algorithm
  • Scanner
  • Bronze V
  • SQL고득점Kit
  • react
  • 문제풀이
  • java
  • HTML
  • 알고리즘풀이
  • 알고리즘
  • BOJ
  • Bronze III
  • 백준문제풀이
  • 혼공MySQL
  • programmers

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
달마루

기획자에서 개발자로

[Java] List, Set, Map 차이
개념 창고/JAVA

[Java] List, Set, Map 차이

2026. 10. 29. 10:01

Java 의 컬렉션은 List, Set, Map 이다.

순서가 중요하면 List 를 쓴다.

1. List

List list = new ArrayList<>();
list.add("A");
list.add("B");
System.out.println(list); // [A, B]

순서를 완벽하게 유지하는 자료구조다.

중복된 값을 저장할 수 있다.

인덱스를 통해 원소를 빠르게 접근한다.

순서가 중요한 경우나 중복이 필요한 경우에 쓴다.

ArrayList 는 추가 시 배열을 복사하므로 대용량 데이터에 주의해야 한다.

LinkedList 는 삽입과 삭제가 빠르지만 메모리 오버헤드가 크다.

2. Set

Set set = new HashSet<>();
set.add("A");
set.add("B");
set.add("A");
System.out.println(set); // [A, B]

중복된 값은 저장되지 않는다.

HashSet 은 순서를 보장하지 않지만 검색이 빠르다.

순서는 중요하지 않은 고유한 값만 필요할 때 쓴다.

HashSet 의 경우 키가 같으면 이전 값을 덮어쓰는 주의가 필요하다.

TreeSet 을 쓰면 자연 순서대로 정렬된 집합을 만들 수 있다.

3. Map

Map<String, Integer> map = new HashMap<>();
map.put("apple", 1);
map.put("banana", 2);
System.out.println(map); // {apple=1, banana=2}

키와 값의 쌍을 저장하는 자료구조다.

키는 중복될 수 없다.

특정 키를 통해 값을 빠르게 조회한다.

키로 접근해야 하는 관계형 데이터에 적합하다.

HashMap 은 null 키나 값을 허용하지만 한 개만 가능하다.

ConcurrentHashMap 은 다중 스레드 환경에서 안전하게 사용할 수 있다.

저작자표시 비영리 변경금지 (새창열림)

'개념 창고 > JAVA' 카테고리의 다른 글

[CS] 뮤텍스(Mutex)와 세마포어(Semaphore) 차이  (0) 2026.10.24
[Java] equals() 를 재정의하면 hashCode() 도 재정의해야 하는 이유  (0) 2026.10.22
[Java] 추상 클래스와 인터페이스 차이  (0) 2026.10.16
[Java] 문자열(String) 비교시 equals()와 == 차이  (0) 2024.07.30
[Java] Unsigned int 구현 방법  (0) 2024.01.31
    '개념 창고/JAVA' 카테고리의 다른 글
    • [CS] 뮤텍스(Mutex)와 세마포어(Semaphore) 차이
    • [Java] equals() 를 재정의하면 hashCode() 도 재정의해야 하는 이유
    • [Java] 추상 클래스와 인터페이스 차이
    • [Java] 문자열(String) 비교시 equals()와 == 차이
    달마루
    달마루
    항상 어제보다 좋은 코드를 지향합니다. https://github.com/kk4002

    티스토리툴바