给定一个String类数组,然后统计其中每个字符串的个数

用一般的for循环写的话比较麻烦,但如果掌握了Map集合的特点就能快速写出这个程序

代码如下:

public class TeestDemo4 {/*** 给定一个数组* 请你给我统计数组中,每个单词出现的次数?*/public static void main(String[] args) {String[]  arr={"aaa","bbb","hah","ll","aaa","bbb","hah","ll","aaa","bbb","hah","ll","ccc","pppp"};/*** 思路,遍历数组,将元素放到map集合中。* 进行判断,如果map集合中已经有这个key了,value+1,put一遍* key:数组中的元素* value:这个元素出现的次数* */HashMap map = new HashMap();for(int i=0;i<arr.length;i++){Integer count=1;if(map.containsKey(arr[i])){count=(Integer) map.get(arr[i]);count++;}map.put(arr[i],count);}//遍历mapSet entrySet = map.entrySet();Iterator it = entrySet.iterator();while(it.hasNext()){Entry next =(Entry) it.next();System.out.println("key:"+next.getKey()+",value:"+next.getValue());}}
}

第一个for循环中通过调用containsKey方法来判断是否存在Key值,如果存在就返回true进入if语句,获取hashmap.get()返回的对象,因为是对象所以建议写成Integer这样的形式。然后将获取的值++操作后,再用hashmap.put()方法覆盖原来的key-values值。

hashmap.enterSet()返回一个Set类的对象命名为entrySet,注意这里Set只是个接口,没法实例化,但hashmap里有公共的方法获取一个new EntrySet()时又转成了Set类,EntrySet是HashMap的一个内部类,继承了抽象类AbstractSet

因为Set继承了Collection中获取Iterator的方法,所以再通过entrySet.iterator()获取一个iterator

之后再while循环里,因为Set里没有指定泛型,所以将it.next()返回的值转成Entry类

用Map集合来统计一个字符串数组中每个字符串的个数相关推荐

  1. java返回字符数组_JAVA语言实现随机返回字符串数组中的字符串

    本文主要向大家介绍了JAVA语言实现随机返回字符串数组中的字符串,通过具体的内容向大家展示,希望对大家学习JAVA语言有所帮助. //随机返回字符串数组中的字符串 public static Stri ...

  2. 字符串数组中查找字符串

    # include <stdio.h> # include <string.h> int search(char* p[], char* name); /* 给字符型的指针数组 ...

  3. LeetCode4_编写一个函数来查找字符串数组中的最长公共前缀。 如果不存在公共前缀,返回空字符串 ““。(解决方案:横向扫描、 纵向扫描 、分治 二分查找 、秀儿操作之排序比较头尾)

    题目 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow&q ...

  4. leetcode1170-比较字符串最小字母出现频次(Map集合存储数组中每个字符串最小元素对应出现频次)

    目录 1. 题目: 2.分析: 3.思路: 4.代码实现: 1. 题目: 2.分析: 分析题目意思,queries中每个词都需要和words中全部单词比较,每个词的出现频次最小的单词的次数和words ...

  5. 使用C#删除一个字符串数组中的空字符串

    C#中要如何才能删除一个字符串数组中的空字符串呢?随着微软对C#不断发展和更新,C#中对于数组操作的方式也变得越来越多样化.以往要实现过滤数组中的空字符串,都是需要实行循环的方式来排除和过滤.C#3. ...

  6. 编写程序,统计一个长度为2的字符串在另一个字符串中出现的次数

    <程序设计基础-c语言>杨莉 刘鸿翔 ISBN-978-7-03-032903-5 p137 习题5 4.统计一个长度为2的字符串在另一个字符串中出现的次数.例如,假定输入的字符串为:as ...

  7. 将一个数组中的字符串用指定字符分割开,分别放到另一个数组中

    #include "stdafx.h" #include <stdio.h> #include <string.h> #pragma warning(dis ...

  8. C语言试题四十八之该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数。

    1. 题目 请编写一个函数function,它的功能是:该函数可以统计一个长度为2的字符串在另一个字符串中出现的次数. 2 .温馨提示 C语言试题汇总里可用于计算机二级C语言笔试.机试.研究生复试中C ...

  9. 20190501-编写一个函数来查找字符串数组中的最长公共前缀。如果不存在公共前缀,返回空字符串...

    题目描述 编写一个函数来查找字符串数组中的最长公共前缀. 如果不存在公共前缀,返回空字符串 "". 示例 1: 输入: ["flower","flow ...

  10. Python 轻松解决从 K 个字符串数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合。(对比用库和不用库的方法)

    文章目录 一.问题说明 二.解决方法 一.问题说明 问题来源:粉丝的提问 从 K 个字符串数组中任意取一个字符串,按顺序拼接,列出所有可能的字符串组合(对比用库和不用库的方法) 二.解决方法 iter ...

最新文章

  1. a连接带id转送不了数据_你找到了数据清洗利器?
  2. tpopela/vips_java
  3. spring5 配置log系统MAVEN
  4. mplus 软件_Mplus 8.3 Combo Version 多元统计分析软件(Win)
  5. Swift - 文本输入框内容改变时响应,并获取最新内容
  6. 51nod1127(尺取法)
  7. 【php复习之】php创建数组的几种方式
  8. 正则表达式 guava_带有正则表达式模式的Google Guava Cache
  9. 李开复:有三个AI专家就能估值7亿的时代过去了
  10. HTC Vive 叠影器无法创建设备
  11. 如何成为一名卓越的数据科学家——开篇七剑
  12. 内核如何检测soft lockup与hard lockup?
  13. CMU 15-213 Introduction to Computer Systems学习笔记(13) Exceptional Control Flow: Exceptions and Process
  14. 卸载MYSQL数据库及MYSQL的安装
  15. unity3D 如何提取游戏资源
  16. 多粒度网络(MGN)的结构设计与技术实现
  17. ZT华尔街日报:中国楼市泡沫的破灭预言 暴跌70%
  18. 全球及中国生物制药产业盈利现状及竞争格局展望报告2021-2027年
  19. ORACLE 19C 单实例数据库安装
  20. PID控制 通俗理解和简单实践

热门文章

  1. android 多次点击事件,Android按钮onclick事件在多次单击后激发
  2. 算法:罗马数字转换为整数13. Roman to Integer
  3. iOS app 启动 crash XCode 11 NSPOSIXErrorDomain Code=2 “No such file or directory“
  4. mysql存emoji_MySql存储emoji表情报错的处理方法
  5. 2021-09-1311. 盛最多水的容器 数组 双指针
  6. string和数值之间的转换
  7. 12满秩分解与奇异值分解(2)
  8. Multi-class classification:One-vs-all
  9. 代码整洁之道读书笔记----第二章---命名--第一节-名副其实
  10. 为什么xgboost/gbdt在调参时为什么树的深度很少就能达到很高的精度?