• Map集合


    Map集合

    特征

    Map中集合,元素是成对出现的,元素由键和值两个部分组成,通过键可以找到对应的值。

    注:1.集合中的键不可以重复,但是值可以重复,最后一个值会覆盖前面的值。

    2.键和值的数据类型可以一致,也可以不一致。

     

    常用字类

    HashMap集合

    底层是一个Hash表,所以查询速度快。在JDK 1.8以前,由单向链表+ 数组实现

    JDK1.8及以后,由数组+单向链表(或者数组+红黑树)实现。

    特点:

    1.存储和取的顺序可能不一致。

    2.多线程集合,速度快,但是存在线程安全。

    LinkedHashMap集合

    存储和取元素的顺序一致。

    常用方法

    1.public v put (k key,v value);

    将键与值添加到集合中,并返回被替换的value值。

    2.public v remove(object key);

    将指定键对应的值从集合中删除,并返回被删除的值

    3.public v get(Object key);

    根据键找到对应的值。

    4.boolean containsKey(Object key);

    集合中是否包含对应的键。

    5.public Set<k> keySet();

    获取集合中所有键,并存储到Set集合中。

    6.public Set<Map.Entry<k,v>> entrySet();

    获取Map集合中所有的键和值,并存储到Set集合。

    遍历的方法

    通过键找值的方法。

    1.使用Map集合中setKey()方法,得到集合中的key,并存储到set集合

    2.遍历set集合,得到每个key

    3.再使用Map集合中的get(key)找到对应的value;

     

    通过Map集合中方法entrySet()

    1.使用entrySet()方法,将集合中的Entry对象存储到Set集合中

    2.遍历集合,获取每一个entry对象

    3.Entry对象可以使用方法 getKey() 和getValue(),分别得到键与值。

    import java.util.HashMap;
    import java.util.Iterator;
    import java.util.Map;
    import java.util.Set;

    public class TestMap {
       public static void main(String[] args) {
               map();
      }


       public static void map (){
           Map<String ,String> emperor = new HashMap<>();
          {
               //put
               emperor.put("秦","秦始皇");
               emperor.put("汉","刘邦");
               emperor.put("隋","杨坚");
               emperor.put("唐","李渊");
               emperor.put("元","铁木真");
               emperor.put("宋","赵匡胤");
               emperor.put("明","朱棣"); //被覆盖
               emperor.put("明","朱元璋");

               System.out.println(emperor);

               //remove
               String qin = emperor.remove("秦");
               System.out.println("千古一帝"+qin);



               //ContainsKey get
               if(emperor.containsKey("明")){
                   String ming = emperor.get("明");
                   System.out.println(ming);
              }

              System.out.println(emperor);

               System.out.println("******************");
               //keySert
               Set<String> emperorSet = emperor.keySet();
               //使用迭代器遍历
               Iterator<String> it = emperorSet.iterator();{
                  while( it.hasNext()){
                      String n = it.next();
                      String s = emperor.get(n);

                      System.out.println(n+":"+s);
                  }
          }
               System.out.println("******************");
           //增强for循环
                       for(String  e : emperorSet){
                           String s = emperor.get(e);
                           System.out.println(e+"--"+s);
                      }




               System.out.println("******************");
                       //entrySet

               Set<Map.Entry<String, String>> emperorEntry = emperor.entrySet();
               //迭代器
               Iterator<Map.Entry<String, String>> emperorIt = emperorEntry.iterator();
               while(emperorIt.hasNext()){
                   Map.Entry<String, String> next = emperorIt.next();
                   String key = next.getKey();
                   String value = next.getValue();
                   System.out.println(key + "---" +value);

              }

               System.out.println("******************");
               //增强for循环
               for( Map.Entry<String, String> E :emperorEntry ){
                   String key = E.getKey();
                   String value = E.getValue();
                   System.out.println(key + "~"+ value);
              }
          }
      }

    }

     

  • 相关阅读:
    selenium+python处理Alert弹窗
    HTML在网页上不能显示图片问题
    制作python程序windows安装包(飞机大战源码)
    python读取ini文件
    python杀死Windows后台程序
    python3中文乱码解决方法
    算法04
    Windows10
    Windows10 快捷键
    文件夹选项-安装功能-window服务
  • 原文地址:https://www.cnblogs.com/stydejava/p/13424124.html
Copyright © 2020-2023  润新知