map集合操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/ldb987/article/details/84569828

map类型对比

HashMap:遍历时,获取数据的顺序完全随机;不支持线程同步;
LinkedHashMap:可以保存记录的插入顺序,遍历输出的顺序和插入的顺序一致;
TreeMap:遍历时,保存的记录可以根据键自动排序;
HashTable:支持线程同步;不允许记录的键或者值为空;

public class mapTest {
    public static void main(String args[]){
        System.out.println("*************************LinkedHashMap*************");
        Map<Integer,String> map = new LinkedHashMap<Integer,String>();
        map.put(7, "阿里");
        map.put(9, "腾讯");
        map.put(6,"百度");
        for (Iterator it = map.keySet().iterator(); it.hasNext();)
        {
            Object key = it.next();
            System.out.println( key+"="+ map.get(key));
        }

        System.out.println("*************************HashMap*************");
        Map<String,String> map1 = new HashMap<String, String>();
        map1.put("7", "阿里");
        map1.put("9", "腾讯");
        map1.put("6", "百度");
        for(Iterator it1 =  map1.keySet().iterator();it1.hasNext();){
            Object key = it1.next();
            System.out.println(key+"="+map1.get(key));

        }

        System.out.println("*************************TreeMap*************");
        Map<Integer,String> map2 = new TreeMap<Integer, String>();
        map2.put(7, "阿里");
        map2.put(9, "腾讯");
        map2.put(6, "百度");
        for(Iterator it2 =  map2.keySet().iterator();it2.hasNext();){
            Object key = it2.next();
            System.out.println(key+"="+map2.get(key));

        }
    }
}

运行结果如下:
在这里插入图片描述

HashMap的遍历方法

public static void main(String args[]){
        System.out.println("*************************LinkedHashMap*************");
        Map<Integer,String> map = new LinkedHashMap<Integer,String>();
        map.put(7, "阿里");
        map.put(9, "腾讯");
        map.put(6,"百度");

        //遍历map
        //方法1.1,keySet遍历,同时获取key和value:6=百度
        for (Iterator it = map.keySet().iterator(); it.hasNext();)
        {
            Object key = it.next();
            System.out.println( key+"="+ map.get(key));
        }

        //方法1.2,keySet遍历,只需要map的key或者value
//        //KeySet 获取key
//        for (Integer key : map.keySet()) {
//            System.out.println(key);
//        }
//        // values 获取value
//        for (String value : map.values()) {
//            System.out.println(value);
//        }

        //方法2,Iterator遍历,可删除元素:Key: 7;   Value: 阿里
//        Iterator<Map.Entry<Integer, String>> it = map.entrySet().iterator();
//        while (it.hasNext()) {
//            Map.Entry<Integer, String> e2 = it.next();
//            // e2.remove(); 删除元素
//            System.out.println("Key: " + e2.getKey() + ";   Value: " + e2.getValue());
//        }

        //方法3,entrySet遍历, 同时获取key,value,推荐使用
//        for (Map.Entry<Integer, String> entry : map.entrySet()) {
//            System.out.println(entry.getKey() + ":" + entry.getValue());
//        }

        //方法4,Lambda遍历,性能低于entrySet
//         map.forEach((key, value) -> {
//              System.out.println(key + ":" + value);
//         });
}

猜你喜欢

转载自blog.csdn.net/ldb987/article/details/84569828