Map集合概述和特点

Map集合概述

  • interface Map<K,V> K:键的类型;V:值的类型

Map集合的特点

  • 键值对映射关系
  • 一个键对应一个值
  • 键不能重复,值可以重复
  • 元素存取无序

Map集合的基本使用

    public class MapDemo01 {public static void main(String[] args) {//创建集合对象Map<String,String> map = new HashMap<String,String>();//V put(K key, V value) 将指定的值与该映射中的指定键相关联map.put("赵丽颖","18");map.put("迪丽热巴","28");//输出集合对象System.out.println(map);}}

Map集合的基本功能

方法名 说明
V put(K key,V value) 添加元素
V remove(Object key) 根据键删除键值对元素
void clear() 移除所有的键值对元素
boolean containsKey(Object key) 判断集合是否包含指定的键
boolean containsValue(Object value) 判断集合是否包含指定的值
boolean isEmpty() 判断集合是否为空
int size() 集合的长度,也就是集合中键值对的个数
    public class MapDemo02 {public static void main(String[] args) {//创建集合对象Map<String,String> map = new HashMap<String,String>();//V put(K key,V value):添加元素map.put("赵丽颖","18");map.put("迪丽热巴","28");//V remove(Object key):根据键删除键值对元素//        System.out.println(map.remove("迪丽热巴"));//void clear():移除所有的键值对元素//        map.clear();//boolean containsKey(Object key):判断集合是否包含指定的键//        System.out.println(map.containsKey("赵丽颖"));//        System.out.println(map.containsKey("德玛西亚"));//boolean isEmpty():判断集合是否为空//        System.out.println(map.isEmpty());//int size():集合的长度,也就是集合中键值对的个数System.out.println(map.size());//输出集合对象System.out.println(map);}}

Map集合的获取功能

方法名 说明
V get(Object key) 根据键获取值
Set keySet() 获取所有键的集合
Collection values() 获取所有值的集合
Set<Map.Entry<K,V>> entrySet() 获取所有键值对对象的集合
    public class MapDemo03 {public static void main(String[] args) {//创建集合对象Map<String, String> map = new HashMap<String, String>();//添加元素map.put("赵丽颖","18");map.put("迪丽热巴","28");//V get(Object key):根据键获取值//        System.out.println(map.get("赵丽颖"));//Set<K> keySet():获取所有键的集合//        Set<String> keySet = map.keySet();//        for(String key : keySet) {//            System.out.println(key);//        }//Collection<V> values():获取所有值的集合Collection<String> values = map.values();for(String value : values) {System.out.println(value);}}}

Map集合的遍历(方式1)

    * 步骤分析* 获取所有键的集合。用keySet()方法实现* 遍历键的集合,获取到每一个键。用增强for实现  * 根据键去找值。用get(Object key)方法实现* 代码实现public class MapDemo01 {public static void main(String[] args) {//创建集合对象Map<String, String> map = new HashMap<String, String>();//添加元素map.put("赵丽颖","18");map.put("迪丽热巴","28");//获取所有键的集合。用keySet()方法实现Set<String> keySet = map.keySet();//遍历键的集合,获取到每一个键。用增强for实现for (String key : keySet) {//根据键去找值。用get(Object key)方法实现String value = map.get(key);System.out.println(key + "," + value);}}}

Map集合的遍历(方式2)

    * 步骤分析* 获取所有键值对对象的集合* Set<Map.Entry<K,V>> entrySet():获取所有键值对对象的集合* 遍历键值对对象的集合,得到每一个键值对对象* 用增强for实现,得到每一个Map.Entry* 根据键值对对象获取键和值* 用getKey()得到键* 用getValue()得到值* 代码实现public class MapDemo02 {public static void main(String[] args) {//创建集合对象Map<String, String> map = new HashMap<String, String>();//添加元素map.put("赵丽颖","18");map.put("迪丽热巴","28");//获取所有键值对对象的集合Set<Map.Entry<String, String>> entrySet = map.entrySet();//遍历键值对对象的集合,得到每一个键值对对象for (Map.Entry<String, String> me : entrySet) {//根据键值对对象获取键和值String key = me.getKey();String value = me.getValue();System.out.println(key + "," + value);}}}

统计字符串中每个字符出现的次数

* 需求* 键盘录入一个字符串,要求统计字符串中每个字符串出现的次数。* 举例:键盘录入“aababcabcdabcde”  在控制台输出:“a(5)b(4)c(3)d(2)e(1)”
* 代码实现
public class HashMapDemo {public static void main(String[] args) {//键盘录入一个字符串Scanner sc = new Scanner(System.in);System.out.println("请输入一个字符串:");String line = sc.nextLine();//创建HashMap集合,键是Character,值是IntegerTreeMap<Character, Integer> wy = new TreeMap<Character, Integer>();//遍历字符串,得到每一个字符for (int i = 0; i < line.length(); i++) {char key = line.charAt(i);//拿得到的每一个字符作为键到HashMap集合中去找对应的值,看其返回值Integer value = wy.get(key);if (value == null) {//如果返回值是null:说明该字符在HashMap集合中不存在,就把该字符作为键,1作为值存储wy.put(key,1);} else {//如果返回值不是null:说明该字符在HashMap集合中存在,把该值加1,然后重新存储该字符和对应的值value++;wy.put(key,value);}}//遍历HashMap集合,得到键和值,按照要求进行拼接StringBuilder sb = new StringBuilder();Set<Character> keySet = wy.keySet();for(Character key : keySet) {Integer value = wy.get(key);sb.append(key).append("(").append(value).append(")");}String result = sb.toString();//输出结果System.out.println(result);}
}

【java基础】map的基本使用与字符串中每个字符出现的次数统计相关推荐

  1. java统计字符串中每个字符出现的次数,统计字符串中每个字符出现的次数

    本文收集整理关于统计字符串中每个字符出现的次数的相关议题,使用内容导航快速到达. 内容导航: Q1:c语言统计字符串中每个字符出现的次数 一.算法分析: 要统计每个字符出现的个数,那么就要为每个字符做 ...

  2. java基础—统计一个字符串中各个字符出现的次数

    统计一个字符串中各个字符出现的次数 import java.util.Iterator; import java.util.Set; import java.util.TreeMap;public c ...

  3. Java黑皮书课后题第6章:*6.23(指定字符的出现次数)使用下面的方法头编写一个方法,找到一个字符串中指定字符的出现次数。编写一个测试程序,提示用户输入一个字符串以及一个字符,显示该字符出现次数

    6.23(指定字符的出现次数)使用下面的方法头编写一个方法,找到一个字符串中指定字符的出现次数.编写一个测试程序,提示用户输入一个字符串以及一个字符,显示该字符出现次数 题目 题目描述 破题 代码 运 ...

  4. Java——集合(输入一串字符串,统计字符串中每个字符出现的次数)

    A:案例演示 需求:输入一串字符串,统计字符串中每个字符出现的次数** 分析: 1,定义一个需要被统计字符的字符串 2,将字符串转化为字符数组,才能拿到每一个字符 3,定义双列集合存储字符串中字符以及 ...

  5. 【Java】统计字符串中每个字符出现的次数

    package LearnJava6;import java.util.HashMap; import java.util.Scanner; import java.util.Set;//统计字符串中 ...

  6. 输入字符串统计字符串中每个字符出现的次数

    这是一个作业题. 我还遇到两次了- 利用map集合嘿哈哈搞定- import java.util.HashMap; import java.util.Scanner;public class Cacl ...

  7. 统计一个字符串中每个字符出现的次数

    统计字符串中每个字符出现的次数 分析: 代码展示: 分析: 1.定义一个需要被统计字符的字符串.2.将字符串转换为字符数组.3.定义一个双列集合,存储字符串中的字符以及字符在此字符串中出现的次数.4. ...

  8. 查找字符串中某个字符出现的次数

    查找字符串中某个字符出现的次数 算法逻辑: 核心算法:先查找第一个字符出现的位置 然后只要indexOf返回的结果不是 -1 就继续往后查找 因为indexOf只能查找到第一个,所以后面的查找,一定是 ...

  9. Java计算字符串中指定字符的出现次数

    1.概述 有很多方法可以计算Java中字符串中 char 的出现次数. 在本快速教程中,我们将重点介绍如何计算字符数的几个示例--首先使用核心 Java 库,然后使用其他库和框架,例如 Spring ...

最新文章

  1. cortex m3 gcc项目_广东省住建厅党组书记赵坤到公司陆丰市污水PPP项目实地调研...
  2. java sql函数_Java调用Sql存储过程实例讲解
  3. PCL:PCL与MFC 冲突总结
  4. 又做了3个极品菜[图]
  5. php websocket 连接已断开连接,客户端websocket 无法连接上PHP socket问题
  6. centos7安装详细图解_CentOS7编译安装PHP7的详细教程(图文)
  7. PostgreSQL相关知识概念
  8. 牛刀:开发商不差钱不等于房价不暴跌 (转载)
  9. TensorFlow Serving安装笔记(仅限64位x86)
  10. C++中数字与字符串之间的转换
  11. 记录工作时,优化程序代码二
  12. 红外遥控学习,万能遥控解决方案
  13. 浅谈逻辑漏洞:越权漏洞、密码找回漏洞、支付逻辑漏洞、指定账户恶意攻击、登录体系安全、业务一致性安全、业务数据篡改、验证码突破、数据重放安全
  14. 小程序运营推广的方法
  15. (黑龙江) --2011年度注册测绘师资格考试合格人员名单
  16. 一.图像处理系统MATLAB实现(GUI界面)
  17. 2016第二届美亚杯全国电子数据取证大赛团队赛write up
  18. JDK动态代理底层源码剖析
  19. 斗智斗勇之springmybatis
  20. Latex输入罗马数字的最简便方法

热门文章

  1. ECMAScript 6 未来前景
  2. apc220使用心得
  3. ASP.NET Web API MediaTypeFormatter
  4. ID--HANDLE--HWND三者之间的互相转换(转)
  5. Android Contact数据模型之EntityDelta(二)
  6. IE – File - Work Offline
  7. ACM训练赛--递推专题
  8. NYOJ 20 吝啬的国度 广度优先搜索
  9. 贝叶斯定理与贝叶斯估计
  10. Yacc 与 Lex 快速入门(词法分析和语法分析)