[Java] HashMap, HashSet 개념정리

2022. 10. 31. 11:29·Java/Java Concept

HashMap은 Map의 종류 중 하나인데, key값과 value 쌍으로 이루어진 데이터를 저장한다.

 

Map과 HashMap의 차이는 map은 red-blcak-tree 알고리즘을 사용하고,

Hashmap은 Hashtable을 이용해 key-value를 유지한다.

 

key값은 중복이 불가능하지만, value값은 중복이 가능하다.

 

 

선언방법 

HashMap<Key값 자료형, Value값 자료형> 변수이름 = new Hashmap<>();

 

HashMap 메서드 정리

 

1. put(key, value) => key, value값 저장, 중복된 key에 대한 value는 마지막에 저장된 value값으로 update

2. putAll(Object) => 인자로 전달된 Map에 대한 모든 데이터를 저장한다.

3. get(Object key) => key에 해당하는 value값을 리턴해준다.

4. remove(Object key) => key에 해당하는 데이터 삭제

5. clear() => Hashmap의 모든 데이터 삭제

6. isEmpty() => 데이터가 비어있으면 true, 아니면 else

7. keySet() => HashMap에 저장된 Key를 Set 객체로 리턴 => Set<Key> 변수이름 =  HashMap 변수 =이름.KeySet()

8.containsKey(Object Key) => HashMap에 전달된 key값이 존재하면 true, 아니면 else

 

HashSet이란 ?

 

Set 인터페이스에서 지원하는 구현 클래스이다.

순서대로 입력되지 않고, 일정하게 유지되지 않는다.

가장 큰 기능은 중복을 제거해주는 역할을 한다는 점이다.

 

선언방법

HashSet<데이터 타입> 변수명 = new HashSet<데이터타입>();

 

HashSet 메서드 정리

add(value) => 값 추가

remove(value) => 값 제거

size() => HashSet의 크기 구하기

contains(value) => value값이 HashSet에 존재한다면 true, 아니면 false 반환

 

 

<참고자료>

https://codechacha.com/ko/java-map-hashmap/

 

Java - HashMap 사용 방법 및 예제

HashMap은 Map의 일종으로 key와 value의 쌍으로 이루어진 데이터를 보관합니다. HashMap은 데이터의 저장순서를 보장하지 않으며 null을 허용합니다. 또한 put, putAll, get, remove, keySet, values 등의 API들을 제

codechacha.com

https://crazykim2.tistory.com/474

 

[JAVA] HashSet이란? & 사용법 정리

안녕하세요 최근 알고리즘을 공부하면서 자바의 다양한 클래스를 알게되고 있는데요 그 동안 개발을 하면서 많이 알고 있다고 생각했는데 끊임없이 나오네요 ㅠ HashSet 클래스에 대해서 설명해

crazykim2.tistory.com

 

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

'Java > Java Concept' 카테고리의 다른 글

[Java] EnumSet에 대해서  (1) 2023.11.13
[Java] 객체지향 사실과 오해 1- 협력하는 객체들의 공동체  (0) 2023.03.10
ArrayList<E> 클래스 및 제네릭 함수 개념  (0) 2022.08.13
메소드 오버라이딩(Method Overriding) 개념  (0) 2022.08.09
상속(inheritance)  (0) 2022.08.09
'Java/Java Concept' 카테고리의 다른 글
  • [Java] EnumSet에 대해서
  • [Java] 객체지향 사실과 오해 1- 협력하는 객체들의 공동체
  • ArrayList<E> 클래스 및 제네릭 함수 개념
  • 메소드 오버라이딩(Method Overriding) 개념
SeungbeomKim
SeungbeomKim
[IT(PS, CS, SW, etc.) 지식 기록] Github : https://github.com/daily1313/
  • SeungbeomKim
    개발 블로그
    SeungbeomKim
  • 전체
    오늘
    어제
    • 분류 전체보기 (392) N
      • 일상 (33)
        • 여행 (17)
        • 회고록 (9)
        • 리뷰 (7)
      • PS (138)
        • 그리디 알고리즘[Greedy] (25)
        • 정렬 알고리즘[Sort] (18)
        • 문자열 알고리즘[String] (14)
        • 동적 계획 알고리즘[DP] (17)
        • 깊이 우선 탐색, 너비 우선 탐색[DFS, BFS.. (34)
        • 재귀[Recursion] (2)
        • 백트래킹[Backtracking] (5)
        • 브루트포스 알고리즘[Bruteforce] (16)
        • 자료 구조[Data Structure] (4)
        • 분할 정복 알고리즘[Divide & Conquer.. (3)
      • CS (26) N
      • Network (11)
      • Database (8)
        • Elasticsearch (3)
      • Linux (2)
      • JavaScript (4)
        • AngularJS (1)
      • Java (5) N
        • Effective Java (7)
        • Java Concept (20)
        • Spring (61)
        • Design Pattern (3)
      • Python (2)
      • Vscode (1)
      • DevOps (43)
        • AWS (27)
        • Git (7)
        • Docker (6)
        • Nginx (1)
      • 자격증 (10)
        • SQL (4)
      • 사이드 프로젝트 (3)
        • MatJido (3)
      • 기타 (9)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
    • 소개
  • 링크

    • Github
  • 공지사항

  • 인기 글

  • 태그

    Wi-Fi
    Spring
    docker
    springboot
    정보처리기사 실기
    백트래킹
    컴퓨터구조
    이펙티브 자바
    다이나믹 프로그래밍
    dfs
    BFS
    Effective Java
    dp
    AWS
    너비 우선 탐색
    sqld
    메타코딩
    일본여행
    정보처리기사 필기
    정보처리기사
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
SeungbeomKim
[Java] HashMap, HashSet 개념정리
상단으로

티스토리툴바