Map 계열
데이터를 Key와 Value값으로 한쌍으로 저장한다.
key는 중복되면 안 된다.
key를 이용하여 value를 얻는다.
함수 | 설명 |
put() | key와 value 값을 Map에 추가 |
get() | key로 등록된 값을 반환 |
remove() | key에 해당하는 Map의 요소를 삭제 |
clear() | Map의 모든 요소들를 삭제 |
keySet() | Map의 키 목록들을 Set 형태로 리턴 |
values() | Map의 값들을 Collection에 담아서 리턴 |
size() | Map에 포함된 Entry 수를 반환 |
isEmpty() | Map에 데이터가 없는지 확인( 없을 경우 true를 반환 아니면 false를 반환) |
containskey() | Map에 Key로 등록된 Entry가 있는 확인 |
containsValue() | Map에 Value로 등록된 Entry가 있는 확인 |
요소 추가하기
import java.util.HashMap; import java.util.Map;
public class ex01 {
public static void main(String[] args) { Map<String, String> hashMap = new HashMap<>();
hashMap.put("A", "100"); hashMap.put("B", "200"); hashMap.put("C", "300"); hashMap.put("D", "400");
// 이미 키가 등록되어 있는 경우 덮어쓴다. hashMap.put("C", "300");
System.out.println(hashMap); } } |
실행 결과] |
map의 value값을 출력하기
System.out.println(hashMap.get("A")); System.out.println(hashMap.get("D")); |
100 400 |
요소 추가하기
// putIfAbsent() : 키가 존재하지 않으면 추가 // "A"가 존재하므로 실패 hashMap.putIfAbsent("A", "150"); System.out.println(hashMap);
// "E"는 키값이 없어 추가 성공 hashMap.putIfAbsent("E", "150"); System.out.println(hashMap); |
실행결과] {A=100, B=200, C=300, D=400} {A=100, B=200, C=300, D=400, E=150} |
요소 치환하기
// replace() : 요소의 값을 치환 // "E"의 변경되기전의 값이 ret에 저장 String ret = hashMap.replace("E", "500"); System.out.println("ret : " + ret); // "E"키값을 통해 변경된 값확인 System.out.println(hashMap.get("E")); |
실행결과] ret : 150 500 |
요소의 개수와 삭제
import java.util.HashMap; import java.util.Map;
public class ex01 {
public static void main(String[] args) { Map<String, String> hashMap = new HashMap<>();
hashMap.put("A", "100"); hashMap.put("B", "200"); hashMap.put("C", "300"); hashMap.put("D", "400"); hashMap.put("E", "500");
// map의 요소의 갯수구하기 System.out.println("총 갯수 : " + hashMap.size());
// 요소 삭제 String ret = hashMap.remove("E"); System.out.println("ret : " + ret); // map의 요소의 갯수구하기 System.out.println("총 갯수 : " + hashMap.size()); hashMap.clear(); // map의 요소의 갯수구하기 System.out.println("총 갯수 : " + hashMap.size()); System.out.println(hashMap.isEmpty()); } } |
실행 결과] 총 갯수 : 5 ret : 500 총 갯수 : 4 총 갯수 : 0 true |
map의 key값과 value값 출력하기
import java.util.Collection; import java.util.HashMap; import java.util.Map;
public class ex01 {
public static void main(String[] args) { Map<String, String> hashMap = new HashMap<>();
hashMap.put("A", "100"); hashMap.put("B", "200"); hashMap.put("C", "300"); hashMap.put("D", "400"); hashMap.put("E", "500");
// key값을 이용하여 value값 출력 Collection<String> coll = hashMap.keySet(); // key값들 출력 System.out.println("key : " + coll); for(String key : coll) System.out.println(hashMap.get(key));
// value값 추출 Collection<String> coll2 = hashMap.values(); // key값들 출력 System.out.println("value : " + coll2); for(String value : coll2) System.out.println(value); } }
|
실행 결과] key : [A, B, C, D, E] 100 200 300 400 500 value : [100, 200, 300, 400, 500] 100 200 300 400 500 |
요소안에서 key나 value에 지정한 값이 포함되었는지 확인
import java.util.HashMap; import java.util.Map;
public class ex01 {
public static void main(String[] args) { Map<String, String> hashMap = new HashMap<>();
hashMap.put("A", "100"); hashMap.put("B", "200"); hashMap.put("C", "300"); hashMap.put("D", "400"); hashMap.put("E", "500");
// key중에 지정한 키가 포함되었는지 확인 System.out.println(hashMap.containsKey("B")); System.out.println(hashMap.containsKey("F"));
// value중에 지정한 값이 포함되었는지 확인 System.out.println(hashMap.containsValue("300")); System.out.println(hashMap.containsValue("700")); } } |
실행 결과] true false true false |
예제1]
import java.util.HashMap; import java.util.Map;
class Student { private String name; private int age; public String getName() { return name; } //생성자 public Student(){ this("홍길동", 18); }
public Student(String name, int age){ this.name=name; this.age=age; }
public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; }
public String toString(){ return "이름은 " + name + " ,나이는" + age+ " 입니다."; } }
public class Main{ public static void main(String[] args){
Map map = new HashMap();
map.put(1, new Integer(100)); map.put("second","Hello World!!"); map.put("third",new Student()); map.put("fourth",null ); //HaspMap은 null을 허용한다.
//Integer i =map.get(1); //에러 발생 Integer i = (Integer)map.get(1); //String str=map.get("second"); //에러발생 String str=(String)map.get("second");
System.out.println(i); System.out.println(str);
Student st=(Student)map.get("third"); System.out.println(st); //overriding 된 toString()메소드를 호출한다. System.out.println( map.get("third")); //자동으로 형변환을 해준다. System.out.println(map.get("fourth")); } } |
실행결과] Hello World!! 이름은 이순신 ,나이는23 입니다. 이름은 이순신 ,나이는23 입니다. null |
'프로그램언어 > 자바' 카테고리의 다른 글
스레드1 (1) | 2020.11.15 |
---|---|
Collection 계열 클래스4 (0) | 2020.11.14 |
Collection 계열 클래스2 (0) | 2020.11.14 |
Collection 계열 클래스1 (0) | 2020.11.14 |
컬렉션 프레임워크 문제 (0) | 2020.11.08 |