250x250
Notice
Recent Posts
Recent Comments
관리 메뉴

탁월함은 어떻게 나오는가?

해쉬맵(HashMap), 그리고 사용방법코드 본문

[Snow-ball]프로그래밍(컴퓨터)/java

해쉬맵(HashMap), 그리고 사용방법코드

Snow-ball 2021. 1. 28. 11:52
반응형

해쉬맵이란?

해쉬맵을 사용하면 데이터 저장은 느리지만 많은 양의 데이터를 검색하는데 있어서 뛰어납니다. HashMap은 Map을 구현했으므로 키(Key)와 값(Value)을 묶어서 하나의 데이터(entry)로 저장합니다.

 

키는 중복 허용이 되지 않고, 값은 중복이 허용됩니다. 예를 들어서 ID는 중복이 안되지만, 여러명의 사람이 비밀번호를 1234라고 저장하는 경우가 있다고 생각하면 좋습니다.

 

해쉬맵이란 Map인터페이스 중 하나로써, 키와 밸류값으로 묶어 데이터를 저장하는자료구조입니다. Hashing을 사용하므로써 많은양의 데이터를 검색하는데 뛰어난 성능을 가지고 있습니다.

 

 

 

 

 

 

 

 

 

해쉬맵과 컬렉션을 같이써서 해결한 코드.

문제 : 랜덤한 숫자를 200개 생성한다.
           숫자의 범위는 20 ~ 60 까지로 제한한다.
           각각의 숫자들이 몇 개씩 중복되었는지 검사하는 프로그램을 작성해보자!

 

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
package Twentieth;
 
import java.util.ArrayList;
import java.util.HashMap;
 
public class RandomNumberArrlist {
 
    public void printRandomNum(){
        ArrayList<Integer> list = new <Integer>ArrayList();
 
        for(int i = 0; i < 200; i++) {
 
            list.add((int) (Math.random() * 40+ 20);
 
                for(int totalNum : list);
 
        }
 
 
        System.out.println("리스트 값 = " + list);
        HashMap<Integer, Integer> map = new HashMap<>();
            for (Integer a : list) map.put(a, map.getOrDefault(a, 0+ 1);
        System.out.println("출력 결과 : " + map);
    }
}
cs

 

 

 

1
2
3
4
5
6
7
8
9
package Twentieth;
 
public class ComprehensiveExamcise_2_2 {
    public static void main(String[] args) {
        RandomNumberArrlist rna = new RandomNumberArrlist();
 
        rna.printRandomNum();
    }
}
cs

 

결과는 스샷으로 담을수 없어서 직접 입력했습니다.

 

리스트 값 = [29, 28, 24, 53, 22, 34, 39, 29, 40, 48, 58, 21, 32, 44, 36, 22, 58, 37, 48, 56, 39, 58, 48, 37, 26, 31, 47, 46, 55, 43, 36, 43, 56, 23, 23, 34, 40, 30, 53, 20, 56, 23, 57, 40, 34, 24, 46, 29, 29, 49, 28, 39, 28, 34, 57, 46, 51, 59, 43, 58, 27, 52, 37, 45, 40, 47, 44, 30, 53, 21, 32, 51, 26, 45, 57, 56, 56, 55, 59, 57, 35, 31, 20, 51, 40, 52, 32, 42, 22, 42, 22, 21, 46, 45, 58, 33, 43, 54, 58, 34, 37, 32, 28, 29, 58, 37, 50, 30, 23, 41, 53, 29, 46, 38, 52, 38, 56, 26, 41, 54, 46, 58, 39, 55, 46, 24, 31, 54, 26, 22, 33, 33, 54, 54, 37, 38, 50, 23, 28, 27, 37, 20, 43, 49, 35, 51, 20, 39, 27, 29, 36, 39, 59, 49, 53, 43, 28, 56, 56, 47, 46, 39, 53, 52, 41, 20, 23, 46, 29, 56, 54, 24, 24, 57, 46, 33, 23, 28, 52, 39, 23, 56, 37, 32, 44, 33, 39, 47, 36, 42, 45, 40, 58, 39, 57, 48, 42, 56, 58, 54]
출력 결과 : {20=5, 21=3, 22=5, 23=8, 24=5, 26=4, 27=3, 28=7, 29=8, 30=3, 31=3, 32=5, 33=5, 34=5, 35=2, 36=4, 37=8, 38=3, 39=10, 40=6, 41=3, 42=4, 43=6, 44=3, 45=4, 46=10, 47=4, 48=4, 49=3, 50=2, 51=4, 52=5, 53=6, 54=7, 55=3, 56=11, 57=6, 58=10, 59=3}

 

이런식으로 출력이 가능하게 됩니다.

 

 

 

 

 

 

 

 

 

 

베타존 : 네이버쇼핑 스마트스토어

나를 꾸미다 - 인테리어소품 베타존

smartstore.naver.com

 

반응형
Comments