목차
HashMap 정의
요소 추가 - put() 메서드
요소 접근 - get(key) 메서드
요소 제거 - remove(key) / clear() 메서드
HashMap 크기 (= 길이 = 요소 개수) - size() 메서드
HashMap 반복 - for 반복문과 keySet() 메서드
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() 메서드
[key만 반복] - keySet() 메서드
[value만 반복] - values() 메서드
[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
주소 복사
랜덤 이동
최신댓글