ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자바] HashMap, Map 사용법
    Web/소스코드 2019. 6. 14. 19:27

    맵 사용법

    map선언시

    Map<String, String> map= new HashMap<>();

    이렇게 하는데 앞의 Map과 뒤의 HashMap의 글자가 다른 이유는 Map이 인터 페이스이기 때문이다.

    인터페이스는 선언만 가능하다. 객체 생성이 불가능한 것들이다.

    때문에 자식인 HashMap으로 객체를 생성한다.

    HashMap은 본인의 메소드 외에 부모인Map의 메소드들을 강제 상속받는다.

     

    HashMap<String, Object> map2= new HashMap<>(); 

    이렇게 선언도 가능하다.

     

    List도 같은 맥락

    List를 왜 ArrayList로 객체 생성하는지 몰랐는데 Map과 같은 이유였다.

    List는 인터페이스 부모니까, 바디 생성이 불가능하다. 

    때문에 자식인 ArrayList, vector등으로 객체를 생성한다. 

    	Map<String, Object> map = new HashMap<String, Object>();
    
    		// 데이터 저장하기!
    		map.put("이름", "siri");
    		map.put("나이", 13);
    		map.put("직업", "학생");
    
    		// 저장한 데이터 꺼내오기
    		System.out.println("key 출력>>>" + map.keySet()); // [이름, 나이, 직업]
    		System.out.println("value 출력>>>" + map.values()); // [siri, 13, 학생]
    		System.out.println("키벨류 출력>>>" + map.toString()); // {이름=siri, 나이=13, 직업=학생}
    		System.out.println("해당키의 값을 출력>>>" + map.get("나이")); // 13
    
    		// 데이터 삭제하기
    		map.remove("이름");
    
    		// 데이터 수정하기
    		map.replace("나이", 10);
    
    		Map<String, String> map2 = new HashMap<String, String>();
    		map2.put("k1", "siri");
    		map2.put("k2", "sani");
    		map2.put("k3", "사니");
    		map2.put("k3", "최진실"); // 중복되는 키 값중 마지막 데이터가 덮어씀
    		Collection<String> col = map2.values();
    		Iterator<String> it = col.iterator();
    
    		System.out.println("<< 전체 map2데이터 >>");
    		while (it.hasNext()) {
    			System.out.println(it.next());
    		}
    
    		System.out.println("<< 전체 map2의 키 출력 >>");
    		Set<String> set = map2.keySet();
    		Iterator<String> keyset = set.iterator();
    		while (keyset.hasNext()) {
    			String key = keyset.next();
    			System.out.println(key + "에 저장된 데이터 :" + map2.get(key));
    		}
    
    		System.out.println("=====================");
    		// 문제
    		Map<String, Object> map3 = new HashMap<String, Object>();
    		map3.put("person", new Person(4, "길동", 13, "학생"));
    		map3.put("k2", new Car("소나타", 4, 100));
    		map3.put("거리", "10km");
    
    		Collection<Object> col2 = map3.values();
    		Iterator<Object> it2 = col2.iterator();
    
    		System.out.println("<< 전체 map2데이터 >>");
    		while (it2.hasNext()) {
    			System.out.println(it2.next());
    		}
    
    		System.out.println("거리: " + map3.get("거리"));
    		Person ob = (Person) map3.get("person");
    		System.out.println("이름: " + ob.getName());
    
    반응형

    'Web > 소스코드' 카테고리의 다른 글

    [자바] interface에 관한 간단한 이해 코드  (0) 2019.06.14
    test  (0) 2019.05.17
    [자바] 윤년, 평년 구하는 코드  (0) 2019.05.16
    [자바] Socket사용법(cmd창)  (0) 2019.05.09
    [자바] Thread 소스코드  (1) 2019.05.08

    댓글

Designed by Tistory.