IT/Programming / / 2023. 4. 20. 13:27

[JAVA] Map Interface 사용 예제

반응형
package dayday15;
/*
 * <Interface MAP> JSP에서 많이 쓰임
 * 1. 특징 : 
 *    1)Key와 value의 쌍으로 원소를 저장한다. 
 *    (Key로 value를 찾음)
 *    2)검색이 편하다.
 * 2. 구현 클래스
 *    1) **HashMap
 *    2) *TreeMap(Key를 자동정렬)    
 * 
 */

import java.util.*;
public class test05 {
	public static void main(String[] args) {
		ArrayList<Person2> arr = new ArrayList<Person2>();
		arr.add(new Person2("피카츄",1));
		arr.add(new Person2("피카츄1",12));
		arr.add(new Person2("피카츄2",132));
		arr.add(new Person2("피카츄3",1232));
		arr.add(new Person2("피카츄4",145));
		arr.add(new Person2("피카츄5",1512));
		
		//위의 arr에서 "피카츄4"를 찾아, 이름을 "라이츄"로 변경
		//없을경우도..
		boolean check = false;
		for(Person2 data : arr){
			if(data.getName().equals("피카츄4")){
				data.setName("라이츄");
				check = true;
				System.out.println("성공");
				break;
			}
		}
		if(check == false){
			System.out.println("검색결과 없음");
		}
		
		
		//이름을 통해서 객체를 찾겠다.
		//키 : 이름(String)
		//값 : 객체 (Person2)
		HashMap<String,Person2> m = new HashMap<String,Person2>();
		
		//원소추가 : put(key, value)
		Person2 p;
		p = new Person2("aaa",11);
		m.put(p.getName(), p);
		p = new Person2("bbb",12);
		m.put(p.getName(), p);
		p = new Person2("ccc",13);
		m.put(p.getName(), p);
		p = new Person2("ddd",14);
		m.put(p.getName(), p);
		m.put("eee",new Person2("eee",5));
		
		//ddd key를 확인 후 키바꾸는것 말고 나이를 바꾸는것.
		if(m.containsKey("ddd")){
			System.out.println("ddd 검색결과 찾음");
			System.out.println("키 : ddd = "+m.get("ddd"));
			
			//키 : "ddd" 값을 꺼내서 피카츄로 바꿈
			m.get("ddd").setName("라이츄");
			System.out.println("키 : ddd = "+m.get("ddd"));
			
			//map은 키를 수정하는것이 없기때문에 키를 지우고 새로 생성하는 방법을 사용
			//키 : 라이츄, 벨류 : "ddd" 원소 추가
			//ddd키에 해당하는것을 지워라.
			m.put("라이츄", m.get("ddd"));
			//주의점! put할때 원소가 중복되면 안된다. 키만 중복되지않으면 값은 중복되도 된다.
			System.out.println("키 : 라이츄 = "+m.get("라이츄"));

			m.remove("ddd");
			
			
		}else {
			System.out.println("ddd 검색결과 없음");
		}
		
		//aaa의 객체정보를 검색
		System.out.println(m.get("aaa"));
		
		
		//1) 키가 있는지 확인 : boolean containsKey(Object Key) 있으면 true , 없으면 false
		//2) 값이 있는지 확인 : boolean containsValue(Object Value) 있으면 true , 없으면 false
		//3) 열쇠함 만들기(키만 따로 모아 만들기) : Set keySet()
		Set keys = m.keySet();
		System.out.println(keys); //[aaa, ccc, bbb, eee, 라이츄]
		
		//4) 값꺼내기 : Object get(Object key) 키를 통해 값을 꺼낸다.
		//5) 모든 값 삭제 : clear
		m.clear();
		System.out.println(keys); //[]
		
		//6) 값 값제 : remove(key) : 해당 값을 삭제 
		//          remove(key, value) : 키와 값이 쌍이어야 삭제
		
		//7) 값 수정 : replace(key, newValue) : 해당 키의 값을 새로운 값으로 대체
		//          replace(key, oldValue, newValue) : 해당 키의 값이 올드값이어야만 새로운 값으로 대체
		//			old값인지는 어떻게 아나?? 기존값을 알고 있어야 하나?
		//			old값을 알고있어야 바뀜.
		
		//8) 다른 map에 있는것을 모두 넣겠다. : putAll(<? extends String,? extends Person2> m)
		//										다른 책장도 키와 값이 같아야한다.
		
		
	}
}
반응형
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유