zoukankan      html  css  js  c++  java
  • 019.2 map集合类

    Map<k,v>
    Map:双列集合,一次存一对,键值对,类似于python的字典。
    共性功能:
    1、添加
        v put(key,value)     //返回key的旧值
        putAll(Map<k,v> map);
        
    2、删除
        void clear();
        v remove(key);               //删除该键并返回值

    3、判断
        boolean containsKey(object)
        boolean containsValue(object);
        boolean isEmpty();

    4、获取
        v get(key);                   //获取该键的值,不删除
        int size();

    例子:

    public static void main(String[] args)
    {
        Map<Integer,String> map = new HashMap<Integer, String>();
        methodDemo(map);
    }
    public static void methodDemo(Map<Integer,String> map){
        System.out.println(map.put(3, "xx"));
        System.out.println(map.put(3, "xxx"));
        map.put(7, "iii");
        System.out.println(map);
    }

    运行结果:
    null
    xx
    {3=xxx, 7=iii}

    keySet()方法
    没有迭代器,所以用Set keySet()方法,方法会取出所有的键到Set集合里面

    Set<Integer> keySet = map.keySet();
    for (Iterator iterator = keySet.iterator(); iterator.hasNext();) {
        System.out.println(map.get(iterator.next()));
    
    }

    entrySet()方法

    Set<Map.Entry<Integer, String>> mapEntry = map.entrySet();
    for (Iterator<Map.Entry<Integer, String>> it = mapEntry.iterator(); it.hasNext();) {
        Map.Entry<Integer, String> m = it.next();
        Integer key = m.getKey();
        String value = m.getValue();
        System.out.println(key+"->"+value);
    
    }

    values()方法

    同步是指只允许单一线程访问该对象
    Map子类对象
    Hashtable:哈希表,是同步的,不允许null键、null值
    HashMap:哈希表,不同步,允许null键,null值
    TreeMap:二叉树,不同步,可以对map集合中的键进行排序


    练习——Map存取取出自定义类型
    对象要复写hashCode()方法,保障键的唯一性

    Map<Employee, String> map = new HashMap<Employee, String>();
    map.put(new Employee(), "广东");
    for(Employee em: map.keySet()){
        System.out.println(map.get(em));
    
    }


    treeMap要实现comparable接口或者用comparator对象
    hashMap要复写hashCode()方法

    改成linkhashMap可以实现有序


    什么时候使用map集合?
    存在映射关系的。

  • 相关阅读:
    Adobe Photoshop CC 2017-18.0安装教程
    Adobe After Effects 2017-14.0安装教程
    Qt之新手打包发布程序
    Qt之添加图标
    突然好想你
    设计模式—桥接
    设计模式—适配器
    设计模式—原型(附带介绍浅拷贝和深拷贝)
    设计模式—抽象工厂
    框架设计——MVC IOC
  • 原文地址:https://www.cnblogs.com/-nbloser/p/8744406.html
Copyright © 2011-2022 走看看