반응형
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)
// 다른 책장도 키와 값이 같아야한다.
}
}
반응형
'IT > Programming' 카테고리의 다른 글
[JAVA] Set Interface 사용 예제 (0) | 2023.04.20 |
---|---|
[JAVA] Comparable, CompareTo 사용 예제 (0) | 2023.04.20 |
[JAVA] ArrayList를 활용하여 사용자정보입력 사용 예제 (0) | 2023.04.20 |
[JAVA] Exception class 사용 예제 (0) | 2023.04.20 |
[JAVA] 예외처리 try-catch, throws 사용 예제 (0) | 2023.04.20 |