黑马程序员_日记56_Map概述和简单方法

 ——- android培训java培训、期待与您交流! ———-

Map

1 查阅API,查找Map最基本信息

在java.util包里面有:
接口 Map

2 Map集合共性方法

###2.1 添加。
    put(K key, V value) 
    putAll(Map<? extends K,? extends V> m) 

###2.2 删除。
    clear() 
    remove(Object key) 

###2.3 判断。
    containsValue(Object value) 
    containsKey(Object key) 
    isEmpty() 


###2.4 获取。
    get(Object key) 
    size() 
    values() 

    entrySet() 
    keySet() 

3 Map常用类

3.1 Hashtable:底层是哈希表数据结构,不可以存入null键null值。该集合是线程同步的。jdk1.0.效率低。

3.2 HashMap:底层是哈希表数据结构,允许使用 null 值和 null 键,该集合是不同步的。将hashtable替代,jdk1.2.效率高。

3.3 TreeMap:底层是二叉树数据结构。线程不同步。可以用于给map集合中的键进行自然排序。

小结:

Map和Set很像。
其实Set底层就是使用了Map集合。

下面演示一下Map的共性方法

import java.util.*;

//主类要加public,对外提供出去
public class MapDemo
{
    public static void main(String[] args)
    {
        putDemo();                                                          //测试Map添加方法
        //deleteDemo();                                                     //测试删除方法
        //booleanDemo();                                                    //测试判断方法
        //getDemo();                                                        //测试获取方法
    }

    public static void putDemo()                                            //1 添加 put(K key, V value)
    {
        Map<String,String> map = new HashMap<String,String>();              //创建Map子类对象

        System.out.println("put方法返回值:"+map.put("num01","Jack"));        //添加一对键值,打印put的返回值
        System.out.println("put方法返回值:"+map.put("num01","WashingTon"));  //添加重复键,打印put的返回值
        map.put("num03","Green");                                           //添加一对键值
        map.put("num02","Tom");                                             //添加一对键值
        map.put("num04","Jane");                                            //添加一对键值

        System.out.println(map);                                            //打印集合map
    }

    public static void deleteDemo()                                         //2 删除
    {
        Map<String,String> map = new HashMap<String,String>();              //创建Map子类对象

        map.put("num01","Jack");                                            //添加一对键值
        map.put("num03","Green");                                           //添加一对键值
        map.put("num02","Tom");                                             //添加一对键值
        map.put("num04","Jane");                                            //添加一对键值

        System.out.println("原集合:"+map);                                 //打印集合map
        System.out.println("删除不存在的键,返回:"+map.remove("o2"));     //删除不存在的键
        System.out.println("删除存在的键,返回:"+map.remove("num02"));       //删除存在的键
        System.out.println("删除元素后:"+map);                               //打印删除元素后集合map
        map.clear();                                                        //清空
        System.out.println("清空后:"+map);                                 //打印清空后集合map
    }

    public static void booleanDemo()                                        //3判断
    {
        Map<String,String> map = new HashMap<String,String>();              //创建Map子类对象

        map.put("num01","Jack");                                            //添加一对键值
        map.put("num03","Green");                                           //添加一对键值
        map.put("num02","Tom");                                             //添加一对键值
        map.put("num04","Jane");                                            //添加一对键值

        System.out.println("映射中有num01:"+map.containsKey("num01"));      //判断映射中是否有指定键
        System.out.println("映射中有num05:"+map.containsKey("num05"));      //判断映射中是否有指定键
        System.out.println("映射中有值Jack:"+map.containsValue("Jack")); //判断映射中是否有指定值
        System.out.println("映射中有值Jack:"+map.containsValue("Mike")); //判断映射中是否有指定值
        System.out.println("映射为空:"+map.isEmpty());                      //判断映射是否为空
        map.clear();                                                        //清空
        System.out.println("映射清空了:"+map.isEmpty());                 //判断映射是否为空
    }

    public static void getDemo()                                            //4 获取
    {
        Map<String,String> map = new HashMap<String,String>();              //创建Map子类对象

        map.put("num01","Jack");                                            //添加一对键值
        map.put("num03","Green");                                           //添加一对键值
        map.put("num02","Tom");                                             //添加一对键值
        map.put("num04","Jane");                                            //添加一对键值

        System.out.println("原集合:"+map);                                 //打印集合map
        System.out.println("用键num01获取值:"+map.get("num01"));         //获取指定键所对应的的值
        System.out.println("用键num05获取值:"+map.get("num05"));         //获取指定键所对应的的值

        map.put(null,"Mike");                                               //存null键和对应值
        map.put("num05",null);                                              //存键和对应null值

        System.out.println("集合:"+map);                                  //打印集合map   

        Collection<String> v = map.values();                                //返回map中所有值的集合
        System.out.println("Values集合"+v);                                   //打印所有值
        System.out.println("键值对总数:"+map.size());                                        //打印映射中键值对总数
    }   
}

putDemo
这里写图片描述
deleteDemo
这里写图片描述
getDemo
这里写图片描述
booleanDemo
这里写图片描述

总结:

通过putDemo可以知道:
添加元素,添加元素,如果出现添加时,相同的键。那么后添加的值会覆盖原有键对应值。
并put方法会返回被覆盖的值。

通过deleteDemo可以知道:
remove方法会删除指定键对应的键值关系,并返回指定键对应值

通过booleanDemo可以知道:
containsKey()是判断映射是否包含指定键
containsValue()是判断映射是否包含指定值
isEmpty()是判断映射是否为空

通过getDemo可以知道:
get方法还可以用来判断该键值对是否存在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值