일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 클래스
- 콜렉션
- 컬렉션
- 메소드
- 루프
- Scanner
- 빌드
- suvlet
- 박싱
- bootstrap
- 제네릭
- 스프링
- 자동형변환
- 언박싱
- 싱글톤
- wrapper
- 제너릭
- Short
- boxing
- Java
- 싱글턴
- 인텔리제이
- Jenkins
- 내장객체
- https://start.spring.io
- dependency
- unboxing
- maven
- 무한
- start.spring.io
Archives
- Today
- Total
Developer Gonie
[4주차] 70. 컬렉션, Map 인터페이스를 상속받은 HashMap 타입(순서,index X, key는 중복 X, value는 중복 O)*** 본문
K-DigitalTraining 강의/1. Java
[4주차] 70. 컬렉션, Map 인터페이스를 상속받은 HashMap 타입(순서,index X, key는 중복 X, value는 중복 O)***
이대곤 2022. 6. 2. 15:22* HashMap클래스란?
Map 인터페이스를 구현하여 만들어진 클래스로, (key, value)의 페어가 1개의 원소이며
Map의 특징을 그대로 상속받아 key는 중복이 없고, value는 중복 데이터는 존재가 가능하다.
순서(index)는 없다는 점에서 Set과 비슷함.
중복되는 key가 존재할 수 없어, key값이 같은 pair를 넣으려고 하면 기존의 것을 덮어씌워버린다.
* HashMap에서 자주 사용되는 메소드
HashMap<key타입, value타입> hm = new HashMap<key타입, value타입>();
hm.put(key객체, value객체); // key객체-value객체 페어 추가
hm.get(key객체); // key객체에 해당하는 value객체 반환
hm.containsKey(key객체) // key객체 존재여부 true/false 반환
hm.containsValue(value객체) // value객체 존재여부 true/false 반환
hm.keySet() // Set 타입으로 모든 key객체 반환
// 확장 for문을 이용한 전체 요소 출력
Set<타입> s = hm.keySet(); // Key에 해당하는 걸 다 가져옴. Key가 String 이었기 때문에 String 으로 지정해준 것.
for(타입 t: s) {
System.out.print(t + ":" + hm.get(t) + " "); // Key값만 알면 get()으로 Value를 얻을 수 있음
}
key는 String, value는 Integer를 사용한 예시코드
* 컬렉션에 타입을 지정할 땐 클래스로만 할 수 있어서 정수형을 사용하고 싶다면 래퍼클래스 이름을 사용.
import java.util.HashMap;
import java.util.Set;
public class Ex09_09_HashMap {
public static void main(String[] args) {
HashMap<String, Integer> hm = new HashMap<String, Integer>(); // key타입, value타입
// add 메서드가 없음
hm.put("슬기", 30);
hm.put("조이", 25);
hm.put("웬디", 12); // 다음 라인에서 덮어띄워져 없어질 데이터
hm.put("웬디", 30); // Key가 중복되는 것이라 기존의 것을 덮어 씌움
hm.put("아이린", 25);
System.out.println(hm.size());
System.out.println(hm); // hm.toString()
//[key1=value1, key2=value2, key3=value3, ,,,]
//HashMap의 toString()은 요소마다 Key의 toString(),Value의 toString()을 각각 호출한다.
System.out.println();
Integer a = hm.get("조이"); // get은 key에 해당하는 value를 반환함
System.out.println("Key '조이'의 Value :" + a);
System.out.println("Key '웬디'의 Value :" + hm.get("웬디"));
System.out.println();
boolean b = hm.containsKey("웬디"); // 웬디라는 키를 포함하는가?
System.out.println(b);
System.out.println(hm.containsKey("이수현"));
System.out.println();
boolean c = hm.containsValue(12);
System.out.println(c);
System.out.println();
Set<String> s = hm.keySet(); // Key에 해당하는 걸 다 가져옴. Key가 String 이었기 때문에 String 으로 지정해준 것.
// Set 타입이라 위치번호가 없음
// 위치번호가 없어서 일반 for 문은 불가능.
for(String t: s) {
System.out.print(t + ":" + hm.get(t) + " "); // Key값만 알면 get()으로 Value를 얻을 수 있음
}
System.out.println();
System.out.println(hm);
}
}
4
{웬디=30, 슬기=30, 조이=25, 아이린=25}
Key '조이'의 Value :25
Key '웬디'의 Value :30
true
false
false
웬디:30 슬기:30 조이:25 아이린:25
{웬디=30, 슬기=30, 조이=25, 아이린=25}
'K-DigitalTraining 강의 > 1. Java' 카테고리의 다른 글
[4주차] 72. Thread, 잠시 멈추게 하는 sleep 메소드(완성) (0) | 2022.06.03 |
---|---|
[4주차] 71. Thread, 동시연산이 가능하도록 만드는 쓰레드 사용법(완성) (0) | 2022.06.03 |
[4주차] 69. 컬렉션, Set 인터페이스를 상속받은 HashSet 타입(순서,index X, 중복데이터 X)*** (0) | 2022.06.02 |
[4주차] 68. 컬렉션, List 인터페이스를 상속받은 Vector 타입(순서,index O, 중복데이터 O) (0) | 2022.06.02 |
[4주차] 67. 컬렉션, List 인터페이스를 상속받아 구현된 ArrayList 타입(순서,index O, 중복데이터 O)*** (0) | 2022.06.02 |
Comments