- HashMap 사용
문제
실리콘 밸리의 프로그래밍 트렌드에 뒤쳐지지 않기 위해서 영어 공부를 하려고 합니다.
영어 공부를 도와줄 단어장을 만들어 봅시다!
Main 클래스만 주어집니다. Main 클래스를 보고 WordDictionary 클래스를 완성시켜 보세요!
대소문자 처리에 유의해주세요. 대소문자와 상관없이 단어를 찾을 수 있어야 합니다.
결과
책
안경
풀이 및 답
WordDictionary 클래스
import java.util.HashMap;
public class WordDictionary {
private HashMap<String, String> words = new HashMap<>();
public void addWord(String english, String korean) {
// key-value 쌍을 추가하는 put 메서드 활용
words.put(english, new String(korean));
}
public String find(String english) {
String reWord = null;
for(String key : words.keySet()) {
if(english.toUpperCase().equals(key.toUpperCase())) {
reWord = words.get(key);
}
}
return reWord;
}
}
WordDictonary 클래스 정답 및 해설
import java.util.HashMap;
public class WordDictionary {
// HashMap 활용
private HashMap<String, String> words = new HashMap<>();
// addWord(String, String) 메소드 생성
public void addWord(String english, String korean) {
// String key 하나에 String 원소 한 개 연결
// key-value 쌍을 추가하는 put 메서드 활용
words.put(english, new String(korean));
}
// addWord(String) 메소드 생성
public String find(String english) {
// .keySet() 메소드를 활용해 HashMap 탐색
for(String key : words.keySet()) {
// 대소문자 구분 없이 검색이 되어야 함
if(english.toUpperCase().equals(key.toUpperCase())) {
return words.get(key);
}
}
// 탐색에 실패했을 경우 null을 리턴
return null;
}
}
Main 클래스
public class Main {
public static void main(String[] args) {
WordDictionary dictionary = new WordDictionary();
dictionary.addWord("Movie", "영화");
dictionary.addWord("cat", "고양이");
dictionary.addWord("Dog", "개");
dictionary.addWord("book", "책");
dictionary.addWord("soap", "비누");
dictionary.addWord("Glasses", "안경");
System.out.println(dictionary.find("Book"));
System.out.println(dictionary.find("glasses"));
}
}