Hash Map
Object put(Object key, Object Value) : 지정된 키와 값을 저장한다.
Object remove(Object key) : 지정된 키로 저장된 값을 제거한다.
Object get(Object key) : 지정된 키의 값(없으면 null)을 반환한다.
Set KeySet() : 저장된 모든 키를 Set으로 변환한다.
HashMap<String, Object> map = new HashMap<String, Object>();
//키와 값 두 가지를 가지기 때문에 키,값 두개의 제네릭을 지정
//값의 타입을 아무거나 저장하고 싶을 때 Object를 자주 사용
map.put("age", 10);
map.put("name", "홍길동");
map.put("date", new Date()); //키에 이름을 지어주면 타입도 예상가능
System.out.println(map); //우리가 저장한 순서대로 출력되지 않음.
map.put("name", "이순신");
//같은 키를 입력하면 기존의 값을 수정해준다.(하나의 키에 하나의 값만 저장 가능)
System.out.println(map);
map.remove("age");//키로 저장된 값을 삭제 가능
System.out.println(map);
Object value = map.get("name");
//키를 입력하면 키에 저장된 값을 반환(우리가 제네릭에 저장한 값의 타입을 반환)
System.out.println(value);
System.out.println(((String)value).substring(0, 1)); //value만 형변환 하는 것
String str = (String)map.get("name");
//내가 만들지 않으면 무슨 키가 들어있는지 모름
Set<String> keys = map.keySet();
//키를 String으로 지정했기 때문에 Set의 제네릭이 String으로 나옴
for(String key : keys) {//향상된 for문 - : 뒤에 배열, ArrayList, Set이 옴
/ : 앞에는 변수가 오는데 뒤에서 꺼냈을 때 저장할 변수임
//keys에서 값을 하나 꺼내서 key라는 변수에 저장하고 실행
System.out.println(key + " : " + map.get(key));
}
//Map은 주로 테이블 구조를 표현할 때 사용
//HashMap은 행 한 줄을 표현할 수 있다 - 컬럼명 : key, 해당 값 : 값
//테이블 전체를 표현하려면 ArrayList 안에 HashMap을 저장
//JOBS 테이블
HashMap<String, Object> job = new HashMap<String, Object>();
job.put("JOB_ID", "AD_PRES");//HashMap에 행을 저장
job.put("JOB_TITLE", "President");
job.put("MIN_SALARY", 20000);
job.put("MAX_SALARY", 40000);
//행 한 줄을 HashMap에 저장
ArrayList<HashMap<String, Object>> jobs = new ArrayList<HashMap<String, Object>>();
jobs.add(job); //jobs테이블에 한 행이 저장됨
job = new HashMap<>();
job.put("JOB_ID", "AD_VP");
job.put("JOB TITLE", "Administration Vice President");
job.put("MIN_SALARY", 15000);
job.put("MAX_SALARY", 30000);
jobs.add(job); //jobs테이블에 총 두 행을 저장
System.out.println(jobs);
HashMap<String, Object> lprod = new HashMap<String, Object>();
ArrayList<HashMap<String, Object>> lprods = new ArrayList<HashMap<String, Object>>();
lprod.put("LPROD_ID", 1);
lprod.put("LPROD_GU", "p101");
lprod.put("LPROD_NM", "컴퓨터제품");
lprods.add(lprod);
lprod = new HashMap<>();
lprod.put("LPROD_ID", 2);
lprod.put("LPROD_GU", "p102");
lprod.put("LPROD_NM", "전자제품");
lprods.add(lprod);
lprod = new HashMap<>();
lprod.put("LPROD_ID", 3);
lprod.put("LPROD_GU", "p201");
lprod.put("LPROD_NM", "여성캐주얼");
lprods.add(lprod);
lprod = new HashMap<>();
lprod.put("LPROD_ID", 4);
lprod.put("LPROD_GU", "p202");
lprod.put("LPROD_NM", "남성캐주얼");
lprods.add(lprod);
lprod = new HashMap<>();
lprod.put("LPROD_ID", 5);
lprod.put("LPROD_GU", "p301");
lprod.put("LPROD_NM", "피혁잡화");
lprods.add(lprod);
lprod = new HashMap<>();
lprod.put("LPROD_ID", 6);
lprod.put("LPROD_GU", "p302");
lprod.put("LPROD_NM", "화장품");
lprods.add(lprod);
lprod = new HashMap<>();
lprod.put("LPROD_ID", 7);
lprod.put("LPROD_GU", "p401");
lprod.put("LPROD_NM", "음반/CD");
lprods.add(lprod);
lprod = new HashMap<>();
lprod.put("LPROD_ID", 8);
lprod.put("LPROD_GU", "P402");
lprod.put("LPROD_NM", "도서");
lprods.add(lprod);
lprod = new HashMap<>();
lprod.put("LPROD_ID", 9);
lprod.put("LPROD_GU", "P403");
lprod.put("LPROD_NM", "문구류");
lprods.add(lprod);
System.out.println(lprods);
//테이블모양으로 출력하기
System.out.println("LPROD_ID\tLPROD_GU\tLPROD_NM");
for(int i = 0; i< lprods.size(); i++) {
System.out.print("\t" + lprods.get(i).get("LPROD_ID"));
System.out.print("\t" + lprods.get(i).get("LPROD_GU"));
System.out.print("\t" + lprods.get(i).get("LPROD_NM"));
System.out.println();
}
}