Map集合

Map集合的定义

java.util.Map 查找表
是Java集合框架的一员
Map本身是一个接口,这种结构体现出来是一个多行两列的表格,其中左列为Key,右列为value

Map 集合的基本使用

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

/*
 * java.util.Map 查找表
 *       是Java集合框架的一员
 * Map本身是一个接口,这种结构体现出来是一个多行两列的表格,其中左列为Key,右列为value,
 * Map总是根据key获取对应的value
 * 常用实现类java.util.HashMap  散列表(哈希表)
 * HashMap是使用散列算法实现的Map,是当今查询速度最快的数据结构
 */
public class MapDemo {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        /*
         * V put(K k,V v)
         * 将一组键值粗存入Map中
         * Map有一个特点:Key不允许重复(key的equals决定是否为重复的key)
         * 如果使用重复的key来put元素,则是替换value操作。
         *   此时方法返回值为被替换的value值,否则为null
         * 如果Map的value是一个包装类类型,获取时不能用基本类型接收,
         *  避免因为自动拆箱导致空指针
         */
        map.put("语文", 96);
        map.put("数学", 86);
        map.put("英语", 66);
        map.put("历史", 77);

        Integer value = map.put("物理", 87);
        System.out.println(value);
        System.out.println(map);

        value = map.put("物理", 99);
        System.out.println(value);
        System.out.println(map);

        /*
         * int size()    返回当前Map中键值对 的个数
         */
        int size = map.size();
        System.out.println(size);

        /*
         * V get(Object key)
         *   根据给定的key获取对应的value,如果给定的key在Map中不存在则返回值为null
         */
        value = map.get("语文");
        System.out.println(value);
        value = map.get("政治");
        System.out.println(value);

        /*
         * V remove(Object key)
         *   根据所给定的key删除Map中这组键值对,
         *       返回值为这个key对应的value
         */
        value = map.remove("历史");
        System.out.println(value);
        System.out.println(map);

        /*
        * boolean containsKey(Object key)
        *   判断当前Map是否包含给定的key
        * boolean containsValue(Object value)
        *   判断当前map是否包含给定的value
        * 这里判断包含是依靠equals方法判断的
        */
        boolean ck = map.containsKey("数学");
        boolean cv = map.containsValue("99");
        System.out.println(ck + " " + cv);

        /*
        * void clear()
        *   清除map集合中所有元素
        */
        map.clear();
        System.out.println(map);

    }
}

Map集合的遍历

import java.util.Collection;
import java.util.HashMap;
import java.util.Map;
import java.util.Set;
import java.util.function.BiConsumer;

/*
 * Map的遍历(3种遍历方式):
 *   遍历所有的key
 *   遍历所有value
 *   遍历所有键值对
 */
public class MapDemo02 {
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();

        map.put("语文", 96);
        map.put("数学", 86);
        map.put("英语", 66);
        map.put("历史", 77);
        map.put("物理", 87);

        /*
         * Set<K> keySet()
         *  将当前Map中所有的key以一个Set集合形式返回
         */
        Set<String> set = map.keySet();
        System.out.print("Key值: ");
        for (String key : set) {
            System.out.print(key + " ");
        }

        System.out.println();

        /*
         * Set<Map.Entry<K, V>> entrySet()
         *   返回一个Set集合,集合中每一个元素是一个Entry实例
         * Map.Entry的每一个实例表示Map中的一组键值对,有两个常用方法:
         *  K getKey();         获取这组键值对的key
         *  V getValue();       获取这组键值对的value
         */
        Set<Map.Entry<String, Integer>> entries = map.entrySet();
        for (Map.Entry<String, Integer> ect : entries) {
            System.out.print("key= " + ect.getKey() + "  ");
            System.out.println("value= " + ect.getValue());
        }

        /*
         * Collection<V> values()
         *   将当前Map中所有的value值以一个Collection集合形式返回
         */
        Collection<Integer> values = map.values();
        System.out.print("value值: ");
        for (Integer value : values) {
            System.out.print(value + " ");
        }

        /*
         * 用forEach()输出
         */
        map.forEach(new BiConsumer<String, Integer>() {
            @Override
            public void accept(String s, Integer integer) {
                System.out.println(s + " " + integer);
            }
        });

        map.forEach((String key, Integer value) -> {
            System.out.println(key + " " + value);
        });

    }
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值