일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- Scanner class
- java
- 백준알고리즘
- 스캐너클래스
- IF문
- MySQL
- 반복문
- C언어
- 변수
- 하드웨어
- error
- 알고리즘
- 함수
- Spring
- 스캐너
- 배열
- Scanner
- FOR문
- 백준
- 기본
- for
- IF
- 파이썬프로그래밍기초
- 자료구조
- IFELSE
- java프로그래밍
- 유비쿼터스
- 자바
- 데이터
- 1차원배열
- Today
- Total
정리하고기록하자
HashMap 본문
HashMap
1. HashMap 은 Map 인터페이스에 속해 있는 컬렉션이다.
2. Map 인터페이스의 기본 기능등을 전부 구현할 수 있다.
3. 데이터들은 모두 ( 키, 값 )의 1:1 구조로 되어 있는 Entry로 되어있다.
4. 같은 키의 값을 삽입하려고하면 해당 키의 값이 변경이 된다.
5. 키는 중복이 되지 않지만 값은 중복이 될 수 있다.
6. 다른 특징은 HashTable과 유사하지만 동기화가 되지 않고 Null값도 저장이 가능하다.
HashMap 선언
import java.util.HashMap;
public class main {
public static void main(String[] args) {
HashMap hashMap = new HashMap(); // 타입 설정 x , Object 입력
HashMap<Integer, Integer> hashMapInteger = new HashMap<>(); // Integer, Integer 타입 설정
HashMap<Integer, Integer> hashMapInteger1 = new HashMap<>(hashMapInteger); // hashMapInteger의 값을 hashMapInteger2에 카피
/*ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ*/
HashMap<Integer, Integer> hashMapInteger2 = new HashMap<>(10); // 초기 용량 지정
/*ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ*/
HashMap<String, String> hashMapString = new HashMap<>();
HashMap<Character, Character> hashMapCharcter = new HashMap<>();
/*ㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡㅡ*/
}
}
HashMap을 선언하는 방법은 Key, Value 2개의 값을 가지고 있으므로
타입을 선언하려는 두 개의 타입으 선언해야한다
HashMap<타입, 타입> 변수명 = new HashMap<타입, 타입>(); 으로 선언한다
HashMap 값 추가 하기
import java.util.HashMap;
public class main {
public static void main(String[] args) {
HashMap<String, String> hashMapString = new HashMap<>();
hashMapString.put("1", "첫번째");
hashMapString.put("2", "두번째");
hashMapString.put("3", "세번째");
System.out.println(hashMapString);
}
}
HashMap의 값을 추가하는 방법은 put(Key,Value)를 사용한다
들어가는 타입은 변수를 선언할 당시의 타입으로 맞춰서 입력해줘야한다
HashMap 값 삭제
import java.util.HashMap;
public class main {
public static void main(String[] args) {
HashMap<String, String> hashMapString = new HashMap<>();
hashMapString.put("1", "첫번째");
hashMapString.put("2", "두번째");
hashMapString.put("3", "세번째");
hashMapString.remove("2");
System.out.println(hashMapString);
}
}
HashMap의 값을 삭제하는 방법은 remove(Key) 메서드를 사용하여 해당하는 Key를 삭제 할 수 있다.
Clear() 메서드를 사용하면 HashMap의 모든 키 값을 삭제 할 수 있다.
import java.util.HashMap;
public class main {
public static void main(String[] args) {
HashMap<String, String> hashMapString = new HashMap<>();
hashMapString.put("1", "첫번째");
hashMapString.put("2", "두번째");
hashMapString.put("3", "세번째");
hashMapString.remove("2");
System.out.println(hashMapString);
hashMapString.clear();
System.out.println(hashMapString);
}
}
HashMap 값 출력하기
HashMap의 값을 출력하는 방법은 for 문과 Iterator 클래스를 사용한다.
첫번째 for 문
import java.util.HashMap;
import java.util.Map;
public class main {
public static void main(String[] args) {
HashMap<String, String> hashMapString = new HashMap<>();
hashMapString.put("1", "첫번째");
hashMapString.put("2", "두번째");
hashMapString.put("3", "세번째");
for(Map.Entry<String, String> value : hashMapString.entrySet()) {
System.out.println("Key : " + value.getKey() + " Value : " + value.getValue());
};
}
}
for(*Map.Entry<타입, 타입> 변수명 : entrySet() ) 으 사용하여 HashMap을 반복문을 실행한다.
value.getKey() / value.getValue() 메서드를 사용하여 HashMap의 Key 값과 Value 값을 가져올 수 있다.
* Map.Entry 는 Map 의 nested class(static) 이다.
Key와 Value로 하나의 쌍을 이루는 map entry이다.
Map.Entry()함수는 map의 coollection-view를 return 한다.
두번째 Iterator 클래스
Iterator는 자바의 컬렉션 프레임웍에서 저장되어있는 요소를 읽어오는 표준화된 방법중 하나이다
이 안의 구성중
hasNext() : 안의 다음요소가 있는지 확인하고 있다면 true, 없다면 false를 반환한다
next() : 안의 다음요소를 반환한다. 즉 가지고 있는 내용을 반환한다.
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
public class main {
public static void main(String[] args) {
HashMap<String, String> hashMapString = new HashMap<>();
hashMapString.put("1", "첫번째");
hashMapString.put("2", "두번째");
hashMapString.put("3", "세번째");
Iterator<Entry<String,String>> iterator = hashMapString.entrySet().iterator();
while(iterator.hasNext()) {
Map.Entry<String, String> entry = iterator.next();
System.out.println("Key : " + entry.getKey() + ", Value : " + entry.getValue());
}
}
}
'Data Structure' 카테고리의 다른 글
그래프 ( Graph ) (0) | 2022.05.28 |
---|---|
HashTable VS HashMap (0) | 2022.05.22 |
해쉬 테이블 ( HashTable ) (1) | 2022.04.16 |
트리 (Tree) (0) | 2022.04.07 |
큐(Queue) (2) | 2022.04.02 |