728x90

HashMap ketSet<String> 을 String 배열로 만들는 법을 적어둔다.

String[] mKeys = map.keySet().toArray(new String[map.size()]);

를 활용할 기회가 있었다.

key 로부터 map.get(key); 로 값을 얻을 수 있다.


key 를 배열로 만들어야 value를 얻을 수 있을 때 아래 예제를 살펴보면 도움이 될 것이다.


import java.util.HashMap;
import java.util.Map;

public class HashMap_Test {

    public static void main(String[] args) {
        Map<String, Object> map = new HashMap<String, Object>();
        map.put("1", "대조영");
        map.put("2", "이순신");
        map.put("4", "강감찬");
        map.put("3", "양만춘");
        map.put("5", "을지문덕");
        map.put("3", "연개소문"); // HashMap 은 key 가 같고 값이 다르면 value를 덮어쓰기를 한다.
       
        // Getting the value of "4" key.
        System.out.println("The Value is: " + map.get("4"));

        map.containsKey("강아지"); // key 가 존재하면 true 반환
        map.containsValue("조나비"); // value 가 존재하면 true 반환

        // Using keySet() to get the set view of keys
        System.out.println("The set is: " + map.keySet());
       
        String[] mKeys = map.keySet().toArray(new String[map.size()]);
        for (String key : mKeys) {
            System.out.println(key);
        }
       
        for(int i=0; i < mKeys.length;i++) {
            System.out.println("key :" + mKeys[i] + ", value : " + map.get(mKeys[i]));
        }
    }

}
 


HashMap의 경우 단점이 put을 통해 데이터나 객체를 넣을때 key의 순서가 지켜지지 않는다는 것이다.
개발을 할때 코드상으로 순차적으로 key/value를 넣어도, 실제 HashMap에서는 해당 순서가 지켜지지 않는다.
만약 입력된 Key의 순서가 보장되어야 한다면 LinkedHashMap을 사용하면 된다.

LinkedHashMap 은 기본적으로 HashMap을 상속받아 만들어져 있게 때문에 HashMap의 기능을 그대로 사용 가능하다.
대신 여기에 순서라는 개념이 들어 갔다.



참고하면 도움이 될 자료

https://stackoverflow.com/questions/5234576/what-adapter-shall-i-use-to-use-hashmap-in-a-listview


블로그 이미지

Link2Me

,