๑ `⌃´ ๑

쉽지 않은 자바..

Hash Table은 Hash Map과 거의 동일하나 테이블의 경우 동시수행기능을 막는다는 점에서 차이가 있습니다.

Hash Table과 Hash Map은 사용하는 메서드가 동일합니다.

오늘은 Hash Table에서 특정 value값을 찾아내는 코드를 짜보겠습니다.

먼저 Hash Table을 Map 안에 넣고 key와 value 값을 선언해주겠습니다.

1
2
3
4
5
6
7
8
9
10
11
Map<String, Integer> map = new Hashtable<String, Integer>();
    map.put("나타샤", 99);
    map.put("토르", 80);
    map.put("스티븐", 75);
    map.put("토니", 43);
    map.put("버키", 52);
    map.put("스트레인지", 100);
    map.put("브루스", 80);
    map.put("피터", 99);
    map.put("완다", 89);
    map.put("클린트", 75);
cs

여기서 점수가 99점인 사람을 찾을 겁니다.

map의 모든 값을 불러와 key의 value값이 99인 경우만 출력하도록 하겠습니다.

 

1. 모든 key를 set으로 가져와 key를 iterator로 쪼개는 방법

1
2
3
4
5
6
7
8
9
10
11
//map에서 key만 set으로 가져옵니다.
Set<String> keySet = map.keySet();
//iterator 로 key 를 하나씩 쪼갭니다.
Iterator<String> iter = keySet.iterator();
//하나씩 가져온 key를 이용해 value를 찾기
while (iter.hasNext()) {
    String key = iter.next();
    //하나씩 값을 꺼낸 뒤 key에 넣습니다.
    if (map.get(key) == 99) {
    System.out.println("99점인 사람의 이름: "+key);                
    }
cs

while 구문의 hasNext() 메서드는 읽어올 요소가 있는지 확인하는 메서드입니다.
key를 쪼개놓은 값인 iter를 읽어올 요소가 있나 확인합니다.

99점인 사람의 이름만을 알아내야 하므로,

if 조건문을 넣어 key에 해당하는 값이 99일 경우에만 key를 출력하도록 합니다.

코드 실행시 99점인 사람들의 이름이 출력됩니다.

 

 

2. 향상된 for 문을 이용해 간단하게 뽑는 방법

향상된 for문을 사용하면 Iterator로 쪼개는 과정 없이 간편하게 원하는 요소를 뽑을 수 있습니다.

1
2
3
4
5
6
7
for (String key : map.keySet()) {
//keySet()값들을 하나씩 뽑아서 key에 넣습니다.
    if (map.get(key) == 99) {
        System.out.println("99점인 사람의 이름: "+key);
    }
}
cs

마찬가지로 if 구문을 넣어 99점인 사람의 이름을 뽑을 수 있도록 해줍니다.

 

코드 실행시 위와 마찬가지로 동일한 내용이 출력됩니다.

 

'Java' 카테고리의 다른 글

자바의 IO(Input/Output)  (0) 2022.05.06
스택(Stack)과 큐(Queue)  (0) 2022.05.06
자바의 Runtime Exception  (0) 2022.04.25
특정 문자가 있는 인덱스 찾기  (0) 2022.04.20
for 반복문을 이용하여 구구단 출력하기  (0) 2022.04.19
🎵 Playlist
loading...
00:00 / 00:00