HashMap 이란?
HashMap은 자바 컬렉션 프레임워크의 일부로, 키-값 쌍을 저장하는 자료구조 중 하나이다. 이는 특정 키에 대응하는 값을 효율적으로 찾기 위해 사용된다. HashMap은 해시 함수를 사용하여 키와 값을 관리하며, 상수 시간(O(1))에 데이터를 검색할 수 있다.
HashMap의 주요 메서드
put(key, value): 특정 키에 대해 값을 매핑하여 HashMap에 저장한다.
get(key): 주어진 키에 해당하는 값을 반환한다.
remove(key): 주어진 키에 해당하는 키-값 쌍을 삭제한다.
containsKey(key): 특정 키가 HashMap에 존재하는지 여부를 반환한다.
keySet(): HashMap에 있는 모든 키를 반환한다.

HashMap 예시
import java.util.HashMap;
import java.util.Map;
public class HashMapExample {
public static void main(String[] args) {
// HashMap 생성
Map<String, Integer> hashMap = new HashMap<>();
// 값 추가
hashMap.put("apple", 10);
hashMap.put("banana", 5);
hashMap.put("orange", 8);
// 값 조회
System.out.println("Number of apples: " + hashMap.get("apple"));
// 값 수정
hashMap.put("apple", 15);
System.out.println("Updated number of apples: " + hashMap.get("apple"));
// 값 삭제
hashMap.remove("banana");
System.out.println("HashMap after removing banana: " + hashMap);
// 특정 키의 존재 여부 확인
System.out.println("Contains key 'banana': " + hashMap.containsKey("banana"));
// 모든 키 출력
System.out.println("All keys in the HashMap: " + hashMap.keySet());
}
}
이 예시에서는 과일과 해당 과일의 갯수를 나타내는 HashMap을 생성하고, 값 추가, 조회, 수정, 삭제, 존재 여부 확인, 모든 키 출력 등의 기본적인 기능을 사용하는 방법을 보여준다.
이러한 유연한 자료구조를 사용하여 많은 상황에서 효율적으로 데이터를 관리할 수 있다.
백준 26008 해시 해킹
주어진 입력에 따라 m의 n 승을 구하는 문제이다. 여기서 n은 첫 번째 줄의 두 번째 값이고, m은 첫 번째 줄의 첫 번째 값이다. 결과는 1000000007로 나눈 나머지를 출력해야 한다.
BufferedReader와 StringTokenizer를 사용하여 입력값을 받아온다.
입력값에서 n과 m을 추출한다.
반복문을 통해 m의 n 승을 구한다.
결과를 1000000007로 나눈 나머지를 출력한다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
// 입력을 받기 위한 BufferedReader와 StringTokenizer 사용
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
// n과 m을 추출하여 변수에 저장
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
// 결과를 저장할 변수 초기화 (1L은 long 타입으로 강제 형변환)
long answer = 1L;
// m의 n 승을 구하기 위한 반복문
for (int i = 0; i < n; i++) {
// 결과에 m을 곱하고, 1000000007로 나눈 나머지를 다시 결과에 저장
answer = (answer * m) % 1000000007;
}
// 최종 결과 출력
System.out.println(answer);
}
}
입력 예시:
3 5
출력 예시:
125
입력값을 받아오기 위해 BufferedReader와 StringTokenizer를 사용한다.
반복문을 통해 m의 n 승을 계산한다.
결과를 1000000007로 나눈 나머지를 출력한다.