zoukankan      html  css  js  c++  java
  • JAVA -----Map接口及遍历

    我们通过查看Map接口描述,发现Map接口下的集合与Collection接口下的集合,它们存储数据的形式不同,如下图。

    Collection中的集合,元素是孤立存在的(理解为单身),向集合中存储元素采用一个个元素的方式存储。

     Map中的集合,元素是成对存在的(理解为夫妻)。每个元素由键与值两部分组成,通过键可以找对所对应的值。

     Collection中的集合称为单列集合,Map中的集合称为双列集合。

     需要注意的是,Map中的集合不能包含重复的键,值可以重复;每个键只能对应一个值。

     Map中常用的集合为HashMap集合、LinkedHashMap集合。

    Map接口中常用集合有

           HashMap集合

    存储数据采用的哈希表结构,元素的存取顺序不能保证一致。由于要保证键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

         LinkedHashMap集合

    存储数据采用的哈希表结构+链表结构。通过链表结构可以保证元素的存取顺序一致;通过哈希表结构可以保证的键的唯一、不重复,需要重写键的hashCode()方法、equals()方法。

    Map接口中常用方法   put()    ,         get()      ,     remove()

    package com.cracle.www.demo01;
    
    import java.util.HashMap;
    import java.util.Map;
    import java.util.Set;
    
    public class Demo02 {
    
        public static void main(String[] args) {
            Map<String,String> map =new HashMap<String,String>();
            //向map中添加数据
            map.put("1", "a");
            map.put("2", "b");
            map.put("2", "z");
            map.put("3", "c");
            //移除
            map.remove("3");        
            //取数据
            System.out.println(map.get("1"));
            System.out.println(map.get("2"));
            System.out.println(map.get("3"));
            //遍历
            //1、keyset();获取Map中的Key所对应的集合。
            Set<String> drt=map.keySet();
            for(String s:drt) {
                String key= s;
                String value = map.get(key);
                System.out.println(key+"..."+value);
            }
            //2、Entry键值对对象
            Set<Map.Entry<String, String>> s1 =map.entrySet();
            for(Map.Entry<String, String> a1:s1) {
                String key=a1.getKey();
                String value = a1.getValue();
                System.out.println(key+"..."+value);
            }
            
        }
    
    }

    Map集合遍历

    package com.cracle.www.demo01;
    
    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    
    public class Demo04 {
    
        public static void main(String[] args) {
            Map<String, String> map = new HashMap<String, String>();
              map.put("1", "value1");
              map.put("2", "value2");
              map.put("3", "value3");
              
              //第一种:普遍使用,二次取值
              System.out.println("通过Map.keySet遍历key和value:");
              for (String key : map.keySet()) {
               System.out.println("key= "+ key + " and value= " + map.get(key));
              }
              
              //第二种
              System.out.println("通过Map.entrySet使用iterator遍历key和value:");
              Iterator<Map.Entry<String, String>> it = map.entrySet().iterator();
              while (it.hasNext()) {
               Map.Entry<String, String> entry = it.next();
               System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
              }
              
              //第三种:推荐,尤其是容量大时
              System.out.println("通过Map.entrySet遍历key和value");
              for (Map.Entry<String, String> entry : map.entrySet()) {
               System.out.println("key= " + entry.getKey() + " and value= " + entry.getValue());
              }
            
              //第四种
              System.out.println("通过Map.values()遍历所有的value,但不能遍历key");
              for (String v : map.values()) {
               System.out.println("value= " + v);
              }
             }
        }
  • 相关阅读:
    (四十九)Quartz2D自定义控件
    (四十八)Quartz2D引擎进阶
    (四十七)Quartz2D引擎初步
    (四十六)内存管理的复习
    (四十五)Modal 模态窗口 -遮盖
    (四十四)TabBarController和NagivationController配合
    (四十三)UITabBarController和AppDelegate的一些细节
    (四十二)tableView的滑动编辑和刷新 -局部刷新和删除刷新 -待解决问题
    linux命令——svn分支创建、合并
    C++异常处理
  • 原文地址:https://www.cnblogs.com/time-to-despair/p/9765072.html
Copyright © 2011-2022 走看看