JAVA/JAVA 연습
HashMap을 이용해서 전화번호부 만들기
오늘의 진
2022. 7. 29. 15:18
package ja_0729;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class My0729 {
static HashMap phoneBook = new HashMap();
private static void addPhoneNo(String groupName, String name, String num) {
addGroup(groupName);
HashMap group = (HashMap) phoneBook.get(groupName);
group.put(name, num);
}
private static void addPhoneNo(String name, String num) {
addPhoneNo("기타", name, num);
}
private static void addGroup(String groupName) {
if (!phoneBook.containsKey(groupName)) {
phoneBook.put(groupName, new HashMap());
}
}
// 출력구문 생성하기
private static void print() {
Set set = phoneBook.entrySet();
Iterator it = set.iterator();
while (it.hasNext()) {
Map.Entry e = (Entry) it.next();
Set subset = ((HashMap) e.getValue()).entrySet();
Iterator iit = subset.iterator();
System.out.println("@" + e.getKey() + "[" + subset.size() + "]");
while (iit.hasNext()) {
Map.Entry ee = (Entry) iit.next();
System.out.println((String) ee.getKey() + " " + (String) ee.getValue());
}
System.out.println();
}
}
public static void main(String[] args) {
addPhoneNo("가족", "홍길동", "010-123-1234");
addPhoneNo("가족", "홍길순", "010-000-1234");
addPhoneNo("친구", "해당화", "010-889-5654");
addPhoneNo("친구", "해당화", "010-376-8845");
addPhoneNo("친구", "들국화", "010-123-1234");
addPhoneNo("회사", "영산강", "010-444-4444");
addPhoneNo("회사", "섬진강", "010-789-7777");
addPhoneNo("회사", "금강", "010-666-6666");
addPhoneNo("회사", "한강", "010-456-7777");
addPhoneNo("세탁", "010-888-8888");
print();
}
}
맵 안에 맵을 생성하는 이중구조로 만들어주었다.
그룹명 | 다시안에 맵 생성 -(이름 : 전화번호) |