Java之HashMap集合簡介及遍歷

sust_ly發表於2018-07-30

HashMap集合是一個比較特殊的集合,它整合了ArrayList和LinkedList的特點。ArrayList的優點是索引快,LinkedList的優點是插入或刪除方便,而HashMap則是由他們兩個的優點整合而來。

HashMap是由一個陣列和連結串列組成,用陣列來儲存連結串列的首地址,從而來達到他們兩個的優點。HashMap由鍵和值組成,其中鍵是唯一的,也就是鍵不可重複,值則可以重複,如果鍵重複了則會覆蓋之前的資料。判斷鍵的hashCode值是否相同,再判斷兩元素的equals方法是否為true,如果是自定義類,則要重寫hashCode和equals方法。

public class demo {
    public static void main(String[] args) {
        //function();
        function_2();
    }

    public static void function(){
        /**
         * @author admin
         * 使用多型來引用子類物件
         * map.keySet()這個方法會返回map中的key的set集合
         */
        Map map = new HashMap<String,String>();
        map.put("123", "abc");
        map.put("234", "abc");
        map.put("345", "abc");
        System.out.println(map);
        Iterator mapIt = map.keySet().iterator();
        while(mapIt.hasNext()){
            String key = (String) mapIt.next();
            String value = (String) map.get(key);
            System.out.println(key+"---"+value);
        }
        System.out.println("-----------------------");        
    }
    public static void function_1(){
        /**
         * @author admin
         * 使用map.entrySet()方法獲得Key-value的關係
         */
        Map map = new HashMap<String,String>();
        map.put("123", "abc");
        map.put("234", "abc");
        map.put("345", "abc");
        Iterator It = map.entrySet().iterator();
        while(It.hasNext()){
            Map.Entry entry = (Map.Entry) It.next();
            String key = (String) entry.getKey();
            String value = (String) entry.getValue();
            System.out.println(key+"---"+value);
        }
    }
    public static void function_2(){
        Map map = new HashMap<String,String>();
        map.put("123", "abc");
        map.put("234", "abc");
        map.put("345", "abc");
        map.put("123", "111");
        for(Object i : map.keySet()){
            System.out.println((String)i+"..."+ (String)map.get(i));
        }
    }
}


 

相關文章