zoukankan      html  css  js  c++  java
  • Java-集合总结之Collection和Map--Map(3)

    map集合

      Map接口时一种双列集合,它的每个元素都包含一个键对象Key和一个值对象Value,键和值对象之间存在一种对应关系,称为映射。

      Map集合常用的方法

    方法声明 功能描述

    void put(Object key,Object value)

    将指定的值与此映射中的指定键关联(可选操作)
    Object get(Object key) 返回指定键所映射的值;如果此映射不包含该键的映射关系,则返回null
    boolean containsKey(Object key) 如果此映射包含指定键的映射关系,则返回true,否则返回false
    boolean containsValue(Object Value) 如果此映射将一个或多个键映射到指定值,则返回true
    Set keySet() 返回此映射中包含的键的Set视图
    Collection<V> values() 返回此映射中包含的值的Collection视图
    Set<Map.Entry<K,V>> entrySet() 返回此映射中包含的映射关系的Set视图

      表中的方法put(Object key,Object value)和get(Object key)分别用来向Map中存入和取出元素;containsKey(Object key)和containsValue(Object Value)方法分别用于判断Map中是否包含某个指定的键或值;keySet()和values()方法分别用来获取Map中所有的键和值。

      Map中常用到的两大实现类,分别是HashMap和TreeMap

    常用实现类HashMap

      Map集合的其中一个实现类,存储数据特点:键值对,键不能重复

    import java.util.HashMap;
    import java.util.Map;
    
    /*
     * 定义一个测试类
     * 
     */
    public class Test {
    
        public static void main(String[] args) {
            //创建map对象
            Map map = new HashMap();
            //给map对象中存入键值对
            map.put("1", "jack");
            map.put("2", "Rose");
            map.put("3", "Lucy");
            //取出map集合中存入的键值对
            System.out.println("1:"+map.get("1"));
            System.out.println("2:"+map.get("2"));
            System.out.println("3:"+map.get("3"));
            //对键等于3的位置继续存入值
            map.put("3", "Nancy");
            //Map中的键必须是唯一的,不能重复,如果存入相同键,后存入的值会覆盖原有的值
            System.out.println("3:"+map.get("3"));
        }
    }

    执行结果:键和值关联,根据键找到对应,如果存入相同键:键相同,值覆盖

      Map集合遍历之方法一:通过遍历键,然后根据键获取值

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    /*
     * 定义一个测试类
     * 
     */
    public class Test {
    
        public static void main(String[] args) {
            //创建map对象
            Map map = new HashMap();
            //给map对象中存入键值对
            map.put("1", "jack");
            map.put("2", "Rose");
            map.put("3", "Lucy");
            Set keySet = map.keySet();//获取键的集合
            Iterator it = keySet.iterator();//获取键的迭代器对象
            while(it.hasNext()){//判断是否有元素
                Object key = it.next();//通过next()方法获取键
                Object value = map.get(key);//通过键获取对应的值
                System.out.println(key+":"+value);
            }    
        }
    }

      执行结果:根据键取出对应的值

      Map集合遍历之方法二:通过映射关系遍历键和值

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    /*
     * 定义一个测试类
     * 
     */
    public class Test {
    
        public static void main(String[] args) {
            //创建map对象
            Map map = new HashMap();
            //给map对象中存入键值对
            map.put("1", "jack");
            map.put("2", "Rose");
            map.put("3", "Lucy");
            Set entrySet = map.entrySet();//获取map存入数据的关系存入到Set集合
            Iterator it = entrySet.iterator();//调用迭代器遍历entrySet
            while(it.hasNext()){//判断是否存在值
                Map.Entry entry = (Map.Entry)it.next();//获取集合中键值对映射关系
                Object key = entry.getKey();//获取Entry中的键
                Object value = entry.getValue();//获取Entry中的值
                System.out.println(key+":"+value);
            }
        }
    }

      执行结果:遍历效果与方法一一致,只是实现的遍历过程不一样

      Map集合遍历之方法三:只遍历值

    import java.util.Collection;
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;
    
    /*
     * 定义一个测试类
     * 
     */
    public class Test {
    
        public static void main(String[] args) {
            //创建map对象
            Map map = new HashMap();
            //给map对象中存入键值对
            map.put("1", "jack");
            map.put("2", "Rose");
            map.put("3", "Lucy");
            Collection values = map.values();//调用values获取集合中的所有值
            Iterator it = values.iterator();//调用迭代器遍历
            while(it.hasNext()){//判断是否有值
                Object value = it.next();//获取值
                System.out.println(value);
            }
        }
    }

      执行结果:打印所有集合中的值

      

    常用实现类TreeMap

       Map集合的另一个实现类TreeMap,存储键值对,其中不允许出现重复键,且存入的键是有序的,TreeMap的底层实现是二叉树,通过二叉树的原理来确保键的唯一性和数据的有序性。

    import java.util.Iterator;
    import java.util.Set;
    import java.util.TreeMap;
    
    /*
     * 定义一个测试类
     * 
     */
    public class Test {
    
        public static void main(String[] args) {
            //创建map对象
            TreeMap tm = new TreeMap();
            //给tm对象中存入键值对
            tm.put("1", "jack");
            tm.put("2", "Rose");
            tm.put("3", "Lucy");
            Set keySet = tm.keySet();//调用values获取集合中的所有值
            Iterator it = keySet.iterator();//调用迭代器遍历
            while(it.hasNext()){//判断是否有值
                Object key = it.next();//获取值
                System.out.println(key+":"+tm.get(key));
            }
        }
    }

    执行结果:

  • 相关阅读:
    GC 案例收集整理
    Netty ByteBuf泄露定位修改。
    使用Modernizr 检测HTML5和CSS3浏览器支持功能 (转自http://www.adobe.com/cn/devnet/dreamweaver/articles/using-modernizr.html)
    drupal网站邮件发送功能的实现
    Customizing and Overriding User Login page, Register, and Password Reset in Drupal 6 and 7
    WordPress网站迁移
    HTTP协议详解 (转)
    HTTP协议
    Apache服务器放置多个站点的配置方法 (转)
    Apache禁止或允许固定IP访问特定目录、文件、URL
  • 原文地址:https://www.cnblogs.com/momo-nancy/p/15516390.html
Copyright © 2011-2022 走看看