描述

Map 与Collection同级 键值对 数据按一对为单位存储 python中的字典
Map ->双列集合的顶层接口
HashMap-> 哈希表存储 没有固定顺序
LinkedHashMap

 //Map中常用方法Map<String, Integer> map = new HashMap<String, Integer>();map.put("123qwe", 1101); //添加元素map.put("das", 43);map.put("daw", 78);map.remove("dasa");           //删除键对应的键值对  没有则不删不报错。map.size();                   //获得集合的大小map.clear();               //清空map.get("das");               //根据输入的键 获得对应的值,没有则返回null//判断方法map.containsKey("das");         //是否存在某个键map.containsValue(43);         //是否存在某个值//修改方法map.put("das", 1001);      //键值对重复的添加会将前面的值覆盖。//键值对的存取没有顺序

Map遍历方式

1.keySet (建)
2.entrySet (整体)

// 使用迭代器,for, foreach, while不做过多赘述//第一种遍历思路       获取键的集合Map<String, String> map2 = new HashMap<String, String>();map2.put("s111", "aaa");map2.put("s112", "bbb");map2.put("s113", "ccc");map2.put("s114", "ddd");map2.put("s115", "eee");Set<String> keySet = map2.keySet();      //键的集合Iterator<String> iterator = keySet.iterator();while (iterator.hasNext()) {String key = iterator.next();                   //遍历获取键的内容System.out.println(key+"-->"+map.get(key));        //键+map.get(键)  获取键和值}//或for (String key : keySet) {System.out.println(key+"-->"+map.get(key));}// 第二种 EntrySet 遍历 同时获取了键和值Set<Entry<String,String>> entrySet = map2.entrySet();Iterator<Entry<String, String>> iterator2 = entrySet.iterator();while (iterator2.hasNext()) {Entry<String, String> next = iterator2.next();System.out.println(next.getKey()+"-->"+next.getValue());}//或for (Entry<String, String> entry : entrySet) {System.out.println(entry.getKey()+"==>"+entry.getValue());}//HashSet 由  HashMap实现出来  将值隐藏掉了  所以原理也一样//linkedHashMap    顺序固定的Map

案例

             //统计字符出现的次数Scanner reader = new Scanner(System.in);System.out.println("Input the string:  ");String string = reader.nextLine();char[] array = string.toCharArray();Map<Character, Integer> map = new HashMap<Character, Integer>();for (int i = 0; i < array.length; i++) {if (!map.containsKey(array[i])) {map.put(array[i], 1);}else {int count = map.get(array[i]);map.put(array[i], count+1); //或++count}//或
//      map.put(array[i], map.containsKey(array[i])?map.get(array[i])+1:1);}Set<Character> set = map.keySet();Iterator<Character> iterator = set.iterator();while (iterator.hasNext()) {Character next = iterator.next();System.out.println(next+" have "+map.get(next));}//StringBuilder 输出StringBuilder stringBuilder = new StringBuilder();for (Character character : set) {stringBuilder.append(character+" have "+map.get(character)+",");}System.out.println(stringBuilder.deleteCharAt(stringBuilder.length()-1));

Java专题 Map,hashMap 多种遍历方式 总结+统计字符出现次数案例相关推荐

  1. 【java】Map集合的遍历方式有几种?

    因为下一个博客想写Hashtable集合下的一个子类Properties集合,但是Map集合的遍历方式又有点遗忘了........... 下面通过API来复习一下: 文章目录 1. Map集合的第一种 ...

  2. Map集合的遍历方式

    1.Map集合的特点 Map集合每次存储两个元素,键不可重复,值可以重复. 2.遍历的方式 Map集合遍历方式1 得到所有的键存放在set集合中–KeySet() 遍历键所在的集合,得到每一个键. 通 ...

  3. 【Java】统计字符出现次数

    [Java]统计字符出现次数 需求 键盘输入字符串,统计其中出现的字符,及其出现次数 运行效果 代码 方法一 package com.cxl.demo01;import java.util.Scann ...

  4. hashmap java 便利_java HashMap 循环遍历map的方法

    java HashMap 循环遍历map的方法(转) import java.util.ArrayList; import java.util.HashMap; import java.util.It ...

  5. [Java基础]Map集合的遍历

    Map集合是Java中非常常用的一个集合,通过Map集合可以实现对数据的快速检索和插入删除等操作:同样对Map集合的遍历也是十分重要的:如果你之前学过C++,那么对于Map的遍历操作可就不能像是C++ ...

  6. java中map如何实现遍历_Java中如何遍历Map对象的4种方法

    在Java中如何遍历Map对象 How to Iterate Over a Map in Java 在java中遍历Map有不少的方法.我们看一下最常用的方法及其优缺点. 既然java中的所有map都 ...

  7. list、Map、Set遍历方式总结

    1.摘要 在JAVA语言中,list.map与set是存储数据使用较多的几种形式.本文将阐述这些集合的特性及如何进行数据遍历的几种方式. 2.集合类图 (1)List集合:以一种特定的顺序存储 Vec ...

  8. HashMap循环遍历方式

    本教程将为你展示Java中HashMap的几种典型遍历方式. 参考文章: Java中遍历HashMap的5种方式 如果你使用Java8,由于该版本JDK支持lambda表达式,可以采用第5种方式来遍历 ...

  9. java akiba,Map集合的遍历(java)

    Map集合通过entrySet 和 keySet都可以使用迭代器 以及for循环拿到key和value: import java.util.HashMap; import java.util.Iter ...

最新文章

  1. 陌陌一面,为什么SpringBoot的 jar 可以独立运行?
  2. 如何测试一个空的JavaScript对象?
  3. vue 使用fs_模仿vue-cli,手写一个脚手架
  4. findviewbyid找不到id_上班找车位很难吧?看看这波操作……
  5. Spring实战(三)Spring中装配Bean的三种方式---XML、JavaConfig、AutoWire
  6. Unity——用UnityEditor拷贝FBX中的AnimationClip
  7. 网易考拉Android客户端路由总线设计
  8. 三星Galaxy S22首发!4nm旗舰芯Exynos 2200跑分出炉
  9. php7.1 伪静态失效,解决CodeIgniter伪静态失效
  10. 【OpenCV】轮廓与凸包
  11. chrome谷歌浏览器历史版本
  12. 基于JAVA宠物店管理系统设计与实现计算机毕业设计源码+数据库+lw文档+系统+部署
  13. linux ubuntu安装svn,在Ubuntu下安装SVN工具RabbitVCS
  14. MAC系统中快速切换输入法的方法
  15. cadence 提示lic找不到怎么办
  16. oobar, foo, bar, baz和qux搅屎棍的含义
  17. python 处理大数据
  18. 加速度速度位移的计算
  19. JIRA实践基础(1):JIRA-Software安装与设定
  20. 闲话Variable Selection和Lasso

热门文章

  1. 近红外荧光染料IRDye 800CW 2-DG/BoneTag/EGF/RGD Optical Probe光学探头
  2. http协议基础笔记(请求报文及响应报文的组成)
  3. 2021NewS美国大学计算机专业,2021年USNEWS美国大学计算机
  4. java Process
  5. TCP三次握手,四次挥手的全过程,为什么需要三次握手,四次挥手
  6. 绕线画算法python_一种绕线画自动生成及加工的方法和设备与流程
  7. [Unity] unity中对象池的使用
  8. 数学建模—voronoi图
  9. ADuM磁隔离芯片与6N137光耦隔离比较
  10. 我的智能充电桩开发笔记(二):系统硬件电路设计概述