• 회원가입
  • 로그인
  • 구글아이디로 로그인

[class] Java - HashMap (해시맵) - key=value 쌍의 유사 배열. (Python Dictionary와 유사)

10,772  
목차
  1. HashMap 정의
  2. 요소 추가 - put() 메서드
  3. 요소 접근 - get(key) 메서드
  4. 요소 제거 - remove(key) / clear() 메서드
  5. HashMap 크기 (= 길이 = 요소 개수) - size() 메서드
  6. HashMap 반복 - for 반복문과 keySet() 메서드
  7. String 이외의 다른 자료형 지정

 

HashMap 정의

 

key=value 쌍으로 요소가 중괄호{} 안에 콤마(,)로 나열 저장되는 유사 배열.

※ 예제: {key1=value1, key2=value2, .... }

※ key와 value는 둘 다 객체 (object)에 해당.

※ key와 value 자료형은 별개 가능.

※ key를 이용해 value에 접근 가능.

 

PS. Python의 Dictionary와 유사.

 


[구문] 

 

(예) String 자료형 key, String 자료형 value 형태의 해시맵

 

// HashMap 클래스 가져오기.

import java.util.HashMap;

 

// HashMap 객체 (예: codes) 생성.

HashMap<String, String> codes = new HashMap<String, String>();

 

 

요소 추가 - put() 메서드

 

java.util.HashMap 클래스의 put() 메서드 이용.

※ 넣은 순서대로 출력 장담 X. (아래 결과값 참고.)

 


[예제] Hz.java

 

import java.util.HashMap;


public class Hz {

  public static void main(String[] args) {

    HashMap<String, String> codes = new HashMap<String, String>();

    codes.put("HTML", "뼈대");

    codes.put("CSS", "디자인");

    codes.put("JS", "기능");

    codes.put("SQL", "DB");

    System.out.println(codes); 

  }

}

 

결과값: {CSS=디자인, JS=기능, HTML=뼈대, SQL=DB}

 

요소 접근 - get(key) 메서드

 

java.util.HashMap 클래스의 get(key) 메서드 이용.

 


[예제] Hz.java

 

import java.util.HashMap;


public class Hz {

  public static void main(String[] args) {

    HashMap<String, String> codes = new HashMap<String, String>();

    codes.put("HTML", "뼈대");

    codes.put("CSS", "디자인");

    codes.put("JS", "기능");

    codes.put("SQL", "DB");

    System.out.println(codes.get("SQL")); 

  }

}

 

결과값: DB

 

요소 제거 - remove(key) / clear() 메서드

[특정 요소 제거]

 

java.util.HashMap 클래스의 remove(key) 메서드 이용.


(예제) Hz.java

 

import java.util.HashMap;


public class Hz {

  public static void main(String[] args) {

    HashMap<String, String> codes = new HashMap<String, String>();

    codes.put("HTML", "뼈대");

    codes.put("CSS", "디자인");

    codes.put("JS", "기능");

    codes.put("SQL", "DB");

    codes.remove("SQL");

    System.out.println(codes); 

  }

}

 

결과값: {CSS=디자인, JS=기능, HTML=뼈대}


[모든 요소 제거]

 

java.util.HashMap 클래스의 clear() 메서드 이용.


(예제) Hz.java

 

import java.util.HashMap;


public class Hz {

  public static void main(String[] args) {

    HashMap<String, String> codes = new HashMap<String, String>();

    codes.put("HTML", "뼈대");

    codes.put("CSS", "디자인");

    codes.put("JS", "기능");

    codes.put("SQL", "DB");

    codes.clear();

    System.out.println(codes); 

  }

}

 

결과값: {}

 

HashMap 크기 (= 길이 = 요소 개수) - size() 메서드

 

java.util.HashMap 클래스의 size() 메서드 이용.

 


[예제] Hz.java

 

import java.util.HashMap;


public class Hz {

  public static void main(String[] args) {

    HashMap<String, String> codes = new HashMap<String, String>();

    codes.put("HTML", "뼈대");

    codes.put("CSS", "디자인");

    codes.put("JS", "기능");

    codes.put("SQL", "DB");

    System.out.println(codes.size()); 

  }

}

 

결과값: 4

 

HashMap 반복 - for 반복문과 keySet() 메서드

  1. [key만 반복] - keySet() 메서드
  2. [value만 반복] - values() 메서드
  3. [key/value 모두 반복] - keySet() / get(key) 메서드

[key만 반복] - keySet() 메서드

 

java.util.HashMap 클래스의 keySet() 메서드 이용.

 

(예제) Hz.java

 

import java.util.HashMap;


public class Hz {

  public static void main(String[] args) {

    HashMap<String, String> codes = new HashMap<String, String>();

    codes.put("HTML", "뼈대");

    codes.put("CSS", "디자인");

    codes.put("JS", "기능");

    codes.put("SQL", "DB");

    for (String i : codes.keySet()) {

        System.out.println(i);

    }

  }

}

 

결과값:

CSS

JS

HTML

SQL


[value만 반복] - values() 메서드

 

java.util.HashMap 클래스의 values() 메서드 이용.

 

(예제) Hz.java

 

import java.util.HashMap;


public class Hz {

  public static void main(String[] args) {

    HashMap<String, String> codes = new HashMap<String, String>();

    codes.put("HTML", "뼈대");

    codes.put("CSS", "디자인");

    codes.put("JS", "기능");

    codes.put("SQL", "DB");

    for (String i : codes.values()) {

        System.out.println(i);

    }

  }

}

 

결과값:

디자인

기능

뼈대

DB


[key/value 모두 반복] - keySet() / get(key) 메서드

 

java.util.HashMap 클래스의 keySet()와 get(key) 메서드 이용.

 

(예제) Hz.java

 

import java.util.HashMap;


public class Hz {

  public static void main(String[] args) {

    HashMap<String, String> codes = new HashMap<String, String>();

    codes.put("HTML", "뼈대");

    codes.put("CSS", "디자인");

    codes.put("JS", "기능");

    codes.put("SQL", "DB");

    for (String i : codes.keySet()) {

        System.out.println("key: " + i + " value: " + codes.get(i));

    }

  }

}

 

결과값:

key: CSS value: 디자인

key: JS value: 기능

key: HTML value: 뼈대

key: SQL value: DB

 

 

 

String 이외의 다른 자료형 지정

 

1.

HashMap의 key와 value는 둘 다 객체에 해당.

위 예제들 경우, 둘 다 String 타입을 사용했음.

 

2.

String 이외의 다른 자료형 객체 만들려면,

랩퍼 클래스 (wrapper class) 이용해야 함.

(예) 

int 자료형 객체 생성: Integer 클래스.

boolean 자료형 객체 생성 : Boolean 클래스.

char 자료형 객체 생성 : Character 클래스.

double 자료형 객체 생성 : Double 클래스.

 


[예제] Hz.java

※ String 자료형 key와 int 자료형 value 갖는 HashMap 생성.

 

import java.util.HashMap;


public class Hz {

  public static void main(String[] args) {

    HashMap<String, Integer> codes = new HashMap<String, Integer>();


    codes.put("HTML", 10000);

    codes.put("CSS", 20000);

    codes.put("JS", 30000);


    for (String i : codes.keySet()) {

      System.out.println("언어: " + i + " 수강료: " + codes.get(i));

    }

  }

}


결과값:

언어: CSS 수강료: 20000

언어: JS 수강료: 30000

언어: HTML 수강료: 10000



분류 제목
String Java - equals() 메서드 -두 문자열의 동일 여부 비교.
String Java - equalsIgnoreCase() 메서드 - 대소문자 구별 없이 문자열 동일 여부 비교.
String Java - format() 메서드 ★★★ - 문자열 포맷 (= format메서드 = 포맷 메서드)
String Java - getBytes() 메서드 - 문자열의 바이트(byte) 배열 반환 (= getBytes메서드 …
String Java - getChars() 메서드 - 문자열에서 문자 배열로 단일문자를 복사.
String Java - hashCode() 메서드 - 문자열의 해시코드 반환 (= hashCode메서드 = 해시코드메서…
String Java - indexOf() 메서드 - 문자열에서 지정 문자의 처음 발견 위치의 색인번호 반환
String Java - intern() 메서드 △ - 지정 색인부터 검색 시작해, 지정 문자가 처음 나타나는 색인 반…
String Java - isEmpty() 메서드 - 빈 문자열인지 여부 체크 (= isEmpty메서드 = 이즈엠프티메서…
String Java - lastIndexOf() 메서드 - 지정 문자가 문자열에서 마지막 나타난 위치의 색인번호 반환.
String Java - length() 메서드 - 문자열 길이 (= length메서드 = 렝스메서드)
String Java - matches() 메서드 △ - 정규식과 일치하는 문자열 검색 후 일치 항목 반환.
String Java - offsetByCodePoints() 메서드 △ - 지정 인덱스에서 codePointOffset…
String Java - regionMatches() 메서드 △ - 두 문자열 영역이 같은지 테스트.
String Java - replace() 메서드 - 문자열의 특정 문자를 지정 문자로 대체. (= replace메서드 …
String Java - replaceFirst() 메서드 △ - 지정 정규식과 일치하는 첫 번째 하위 문자열을 새 지정…
String Java - replaceAll() 메서드 △ - 지정 정규식과 일치하는 모든 하위 문자열을 새 지정대로 대…
String Java - split() 메서드 △ - 문자열을 부분 문자열의 배열로 분할.
String Java - startsWith() 메서드 - 문자열이 지정 단일문자(들)로 시작하는지 체크.
String Java - subSequence() 메서드 △ - 하위 시퀀스 반환
7/10
목록
찾아주셔서 감사합니다. Since 2012