[Java] Set과 Map

2025. 9. 17. 13:01·컴퓨터공학과/Java 1 & 2

 

Map은 컬렉션이아니다!

다만, 컬렉션처럼 쓸 수 있는 '메서드'가 있을 뿐.

 

초록색으로 표시된 건 모두 인터페이스!

인터페이스 : 기능을 약속한다.

 

Collection 인터페이스에는 모든컬렉션의 '공통 기능'만 정의한다.
따라서, set 등에는 순서가 없으므로, collection에는 get(index i)가 없다.

 

자바에서는 스택, 큐를 잘 쓰지않는다.

 

 

Stack : FILO

Queue : FIFO

- 톨게이트

 

`Set` : 집합 개념, 저장 순서가 유지되지 않고 중복을 허용하지 않는다.

순서 자체가 없다. .get(index) 메소드가 없다! (인덱스가 없어욧).

보통 Iterator 혹은 for-each를 사용한다.

  • HashSet 
    해쉬테이블에 원소를 저장.(성능 우수),  순서가없다.
  • LinkedHashSet
    여기에 한해서만, 순서를 유지한다.
    중복을 허용하진 않는다!
  • TreeSet
    링크드리스트로 만들었다. 자동정렬기능이 있음.
    다만, 느리다.

  • EnumSet
    중복되지않는 상수 그룹나타낼 때 사용.

HashSet : `Set set = new HashSet();`

  • 합집합 `addAll()`
  • 교집합 `retainAll()`
  • 차집합 `removeAll()`
  • 부분집합 `containsAll()`

Map : 인터페이스, 컬렉션 인터페이스와 다르다.

  • HashMap,Hashtable,LinkedHashMap,TreeMap

Map.Entry객체를 저장하는 구조. 키(Key)에 값(Value)가 매핑된다. 

entry : key+value

 

Map은 entry들의 set이라고 한다. key만 중복되면안되고, value는 중복되어도 된다.

`Map<K, V> map = new HashMap<K, V>();`

키 타입으로 String을 많이 사용하나, 문제에 따라 다름.

- String은 문자열이 같은 경우 동등객체가 될 수 있도록 hashCode()와 equals()메소드가 재정의되어있기 때문.

 

HashMap : 순서없음.

LinkedHashMap : 순서가 저장된 해쉬맵

 

PrettyPrinter 인터페이스 : show() 를 가짐. 

 

 

 

'컴퓨터공학과 > Java 1 & 2' 카테고리의 다른 글

[Java] 커피메이커 리팩토링 - SOLID 원칙 적용 +V2,V3 | 추가패턴조사  (0) 2025.10.11
[Java] Thread  (0) 2025.09.22
JAVA backjoon 10815 이진탐색, 스트링빌더, 배열  (0) 2025.07.13
JAVA프로그래밍및실습/최윤정교수님/기말고사 범위  (0) 2025.06.08
Battle 과제 코드 수정 - 공격/힐링 모듈화 + 레벨업 모듈화  (0) 2025.05.30
'컴퓨터공학과/Java 1 & 2' 카테고리의 다른 글
  • [Java] 커피메이커 리팩토링 - SOLID 원칙 적용 +V2,V3 | 추가패턴조사
  • [Java] Thread
  • JAVA backjoon 10815 이진탐색, 스트링빌더, 배열
  • JAVA프로그래밍및실습/최윤정교수님/기말고사 범위
sihyes
sihyes
24학번 컴퓨터공학과
  • sihyes
    시혜적으로개발
    sihyes
  • 글쓰기 관리
  • 전체
    오늘
    어제
    • 분류 전체보기 (114)
      • 단순 설정 (10)
      • 백엔드 공부(BE, AWS) (8)
        • 로그인&회원가입 (3)
        • 파일업로드&GPT (2)
      • 컴퓨터공학과 (51)
        • 운영체제 (0)
        • Artificial Intelligence (0)
        • Java 1 & 2 (23)
        • 컴퓨터네트워크 (3)
        • 모앱JavaScript (0)
        • Data structures (9)
        • 소프트웨어공학 (5)
        • 오픈SW플랫폼 제출용 (5)
        • Python - 문해프 (1)
      • 개인 프로젝트 (2)
        • 알바솔로몬 (1)
        • PLACO 프로젝트 (0)
      • 도서 공부(정리) (20)
        • 알고리즘 코딩 테스트 자바 편 (1)
        • SQL첫걸음 (8)
        • 코딩 자율학습 스프링 부트 3 자바 백엔드 개발 .. (6)
        • Do it! 지옥에서 온 문서 관리자 깃&깃허브 .. (5)
      • 개인공부정리페이지 (12)
        • 백준 & 프로그래머스 (3)
  • 블로그 메뉴

    • 홈
    • 태그
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ㅇ
  • 최근 댓글

  • hELLO· Designed By정상우.v4.10.4
sihyes
[Java] Set과 Map
상단으로

티스토리툴바