일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 투자
- 재테크
- 서평
- 자바스크립트
- 지혜를가진흑곰
- C
- 경제
- 독서
- 자바
- 알고리즘 공부
- 주식
- 독후감
- 화장품
- JavaScript
- 알고리즘공부
- algorithmtraining
- Java
- 알고리즘트레이닝
- algorithmStudy
- C++
- 프로그래밍언어
- 성분
- 다독
- 책을알려주는남자
- algorithmTest
- 책알남
- 채권
- 돈
- 백준알고리즘
- 프로그래머스 알고리즘 공부
- Today
- Total
탁월함은 어떻게 나오는가?
해쉬맵(HashMap), 그리고 사용방법코드 본문
해쉬맵이란?
해쉬맵을 사용하면 데이터 저장은 느리지만 많은 양의 데이터를 검색하는데 있어서 뛰어납니다. 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}
이런식으로 출력이 가능하게 됩니다.
'[Snow-ball]프로그래밍(컴퓨터) > java' 카테고리의 다른 글
[JAVA] 두 점의 사이 거리를 계산하는 방법 및 풀이 (0) | 2021.02.14 |
---|---|
[JAVA] Scanner클래스 활용 문제 및 풀이 (0) | 2021.02.12 |
뮤텍스(Mutext), 세마포어(Semaphore), 스핀락(Spinlock), 레이스 컨디션(Race condition), 동기화(Syschronezed), 크리티컬 섹션(Critical Section) 에 대해서 (0) | 2021.01.27 |
[Java] 소켓(SOCKET) 이란? (0) | 2021.01.20 |
[Java] 컬렉션즈 프레임워크 [ Collections Framework ] (0) | 2021.01.17 |