Java-Map用法简介

本文将对Map接口进行一些简单介绍,包括继承关系、常用方法,还有遍历,主要参考JavaAPI:
http://docs.oracle.com/javase/8/docs/api/java/util/Map.html

如果想知道HashMap的原理、源码分析,请看我这篇博客https://blog.csdn.net/Bloddy/article/details/80501917

〇、Java API中对Map的描述

Map是一个能将键(keys)映射到值(values)的对象,一个Map对象不能包含重复的键,但是可以包含重复的值。

Map接口提供了三种查看方式,分别是a set of keys, collection of values, or set of key-value mappings。这里没有进行翻译,因为我觉得这里翻译不太好。set在这里指的是Set接口的对象,collection指的是Collection接口的对象。在后面方法介绍的时候会讲。

一、继承关系

Java中Map的继承关系远比这复杂,不过大部分情况这个图很够用了。常用的就是HashMap(无序)和TreeMap(有序)

二、常用方法简介

用的多的方法用黑体标注了

1.clear()

很常规的清空方法

2.containsKey(Object key)

判断一个Map对象是否包含该键

3.containsValue(Object value)

判断一个Map对象是否包含该值

4.entrySet()

一种Map遍历方式,返回的是Set

三、Map的遍历

Map的遍历可以分为四种,在遍历方式中可以用foreach和迭代器两种,获取键值对可以用entrySet和keySet() + get()。建议采用foreach和entrySet()方法(示例中第一种方法),最简洁而且效率最高。

import java.util.*;  

public class MapTest {  
    public static void main(String[] args) {  
        //新建一个空的Map  
        Map<String, Integer> map = new HashMap<String, Integer>();  
        //添加值  
        map.put("a", 1);  
        map.put("b", 2);  
        map.put("c", 3);  

        //1. foreach 配合 entrySet()  
        for (Map.Entry<String, Integer> entry : map.entrySet()) {  
            System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());  
        }  
        System.out.println("------------------");  

        //2. foreach配合keySet()和get()  
        for (String key : map.keySet()) {  
            System.out.println("Key = " + key + ", Value = " + map.get(key));  
        }  
        System.out.println("------------------");  

        //3. 迭代器Iterator配合entrySet()  
        Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();  
        while (iterator.hasNext()){  
            Map.Entry<String, Integer> entry = iterator.next();  
            System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue());  
        }  
        System.out.println("------------------");  

        //4. 迭代器Iterator配合keySet()和get()  
        Iterator<String> keyIterator = map.keySet().iterator();  
        while (keyIterator.hasNext()){  
            String key = keyIterator.next();  
            System.out.println("Key = " + key + ", Value = " + map.get(key));  
        }  
    }  
}  

猜你喜欢

转载自blog.csdn.net/Bloddy/article/details/80501977