package ch04_map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
/*
* HashMap
* → key, value로 구성.
* → key값은 중복될 수 없고, value는 중복되어도 상관없음.
* → 기존에 저장된 key와 동일한 key로 값을 저장하면, 기존값은 없어지고 새로운 값으로 변경.
*/
public class ExHashMap {
public static void main(String[] args) {
//HashMap<String,String> hm = new HashMap<>();
Map<String,String> hm = new HashMap<>();
// put(key, value) : 데이터 추가
hm.put("유재석", "안테나");
hm.put("손흥민", "토트넘");
hm.put("김연경", "흥국생명");
//hm.put("유재석", "프리랜서"); → 동일한 key값으로 value를 설정하면 덮어쓰기 됌.
System.out.println(hm);
System.out.println();
// get(key) : value 데이터 가져오기
System.out.println("손흥민 소속 : " + hm.get("손흥민"));
System.out.println();
// iterator -> key 값 set으로 처리되어있음.
Set<String> ks = hm.keySet(); // set 생성 : key값만을 모아서 생성해놓은 keySet()
Iterator<String> it = ks.iterator(); // set을 돌아다닐 반복자 생성.
while(it.hasNext()) {
String key = it.next();
String value = hm.get(key);
System.out.println(key + " - " + value);
}
System.out.println();
// remove(key) : 삭제 return value;
System.out.println("손흥민 삭제 : " + hm.remove("손흥민"));
System.out.println("박지성 삭제 : " + hm.remove("박지성"));
System.out.println(hm);
System.out.println();
String dkey = "";
if(hm.containsKey(dkey)) {
hm.remove(dkey);
System.out.println(dkey + "삭제"); }
else
System.out.println("삭제 key가 없습니다...");
System.out.println();
}
}
package ch04_map;
public class Member {
private String id;
private String name;
public Member(String id, String name ) { this.id = id; this.name = name;}
public String getId() { return id; }
public void setId(String name) { this.id =name;}
public String getName() {return name;}
public void setName(String name) {this.name=name;}
public String toString() {
return id + " - " + name;
}
}
--------------------------------------------------------------------------------
//MemberManager
package ch04_map;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Set;
public class MemberManager {
private Map<String, Member>map; // key : id value : name
public MemberManager(){
map = new HashMap<>();
}
// 회원 추가
public void insert(String id, String name) {
if(map.containsKey(id)) {System.out.println("중복 ID 다시 진행하세요..");}
else { map.put(id, new Member(id,name));}
} // insert
public boolean id_check(String id) {
if(map.containsKey(id))
return true;
return false;
}
public void delete(String id) {
if(id_check(id)) {
map.remove(id);
System.out.println(id + "삭제 완료");
} else {
System.out.println("없는 id 입니다..");
}
} // delete
public void list() {
Set<String> set = map.keySet();
Iterator<String> it = set.iterator();
while(it.hasNext()) {
String key = it.next();
Member value = map.get(key);
System.out.println(value);
}
} //list
public void end() {
System.out.println("- Program end -");
System.exit(0);
}
}
--------------------------------------------------------------------------------
// MemberMain
package ch04_map;
import java.util.Scanner;
public class MemberMain {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
MemberManager mem = new MemberManager();
while(true) {
System.out.println("----- 회 원 관 리 -----");
System.out.print("1.가입 2.삭제 3.목록 >>");
int select = sc.nextInt();
switch(select) {
case 1: // 가입 : id(key) , name(value)
System.out.print("id 입력 > ");
String new_id = sc.next();
if(mem.id_check(new_id))
System.out.println("사용중인 ID입니다..");
else {
System.out.print("name 입력 > ");
String new_name = sc.next();
mem.insert(new_id, new_name);
}
break;
case 2: //
System.out.print("삭제할 ID를 입력하세요. > ");
String delete_id = sc.next();
mem.delete(delete_id);
break;
case 3:
mem.list();
break;
case 0:
mem.end();
default:
System.out.println("선택오류");
}
}
}
}