Java编程实现统计数组中各元素出现次数的方法

本文实例讲述了Java编程实现统计数组中各元素出现次数的方法。分享给大家供大家参考,具体如下:

package javatest;
import java.util.HashMap;
import java.util.Iterator;
import java.util.Map;
import java.util.Map.Entry;
import java.util.Set;
public class NumOfEle {
  public static void main(String[] args) {
    String[] arr = new String[]{"aaa", "bbb", "ccc", "ddd", "ddd", "aaa"};
    Map<String, Integer> map = new HashMap<>();
    for (String str : arr) {
      Integer num = map.get(str);
      map.put(str, num == null ? 1 : num + 1);
    }
    Set set = map.entrySet();
    Iterator it = set.iterator();
    System.out.println("方法一 :");
    while (it.hasNext()) {
      Map.Entry<String, Integer> entry = (Entry<String, Integer>) it.next();
      System.out.println("单词 " + entry.getKey() + " 出现次数 : " + entry.getValue());
    }
    System.out.println("方法二 :");
    Iterator it01 = map.keySet().iterator();
    while (it01.hasNext()) {
      Object key = it01.next();
      System.out.println("单词 " + key + " 出现次数 : " + map.get(key));
    }
  }
}

运行结果:

方法一 :
单词 aaa 出现次数 : 2
单词 ccc 出现次数 : 1
单词 bbb 出现次数 : 1
单词 ddd 出现次数 : 2
方法二 :
单词 aaa 出现次数 : 2
单词 ccc 出现次数 : 1
单词 bbb 出现次数 : 1
单词 ddd 出现次数 : 2

PS:这里再为大家推荐2款非常方便的统计工具供大家参考使用:

在线字数统计工具:
http://tools.jb51.net/code/zishutongji

在线字符统计与编辑工具:
http://tools.jb51.net/code/char_tongji

更多关于java算法相关内容感兴趣的读者可查看本站专题:《Java数据结构与算法教程》、《Java操作DOM节点技巧总结》、《Java文件与目录操作技巧汇总》和《Java缓存操作技巧汇总》

希望本文所述对大家java程序设计有所帮助。

时间: 2017-07-05

java基础之数组常用操作总结(必看篇)

常用的对数组进行的操作 1.求数组中最大值,最小值 思路:假设下标为0的元素是最大值,遍历数组,依次跟max进行比较,如果有元素比这个max还大,则把这个值赋给max.最小值同样 public class TestArray{ public static void main(String[] args){ int[] arr={23,45,234,576,34,87,34,12,67}; int max=arr[0]; int min=arr[0]; for(int i=0;i<arr.leng

java 两个数组合并的几种方法

本文介绍了java 两个数组合并的几种方法,分享给大家,也给自己留个笔记 需求:两个字符串合并(如果想去重复,参考下一篇--数组去重复及记录重复个数) //方法一 Arrays类 String[] a = {"A","B","C"}; String[] b = {"D","E"}; // List<String> list = Arrays.asList(a); --OK // List<

关于Java数组查询的相关问题及实例 原创

在做数组查询的过程中,我们有时候会遇到一些问题,下面就跟随作者一起解答这些问题. Arrays 类的 binarySearch() 方法,可使用二分搜索法来搜寻指定数组,以获得指定对象.该方法返回要搜索元素的索引值. binarySearch()方法提供了多种重载形式,用于满足各种类型数组的查找需要. binarySearch()方法有两种参数类型. (1)binarySearch(Object[] a.Object key) 其中a 代表要所搜的数组,key 表示要搜索的值.如果key 包含在

java整数与byte数组的转换实现代码

java整数与byte数组的转换实现代码            这里对java中整数与byte数组的转换进行了实现,平时的项目中很少用的到,但是特定需求的时候还是需要的,这里就记录下,亲测可用, 实现代码: public class NumberUtil { /** * int整数转换为4字节的byte数组 * * @param i * 整数 * @return byte数组 */ public static byte[] intToByte4(int i) { byte[] targets =

java实现向有序数组中插入一个元素实例

整理文档,搜刮出一个java实现向有序数组中插入一个元素,稍微整理精简一下做下分享 package cn.jbit.array; import java.util.*; public class Insert { public static void main(String[] args) { //字符排序 char[] chars = new char[9]; chars[0] = 'a'; chars[1] = 'c'; chars[2] = 'u'; chars[3] = 'b'; cha

java去除已排序数组中的重复元素

题目描述 给定一个已排序的数组,去除数组中的重复元素,只保留一个重复的元素,并且返回新的数组长度. 要求: 不要给数组分配额外的空间,你必须使用常量的内存大小进行原地操作. 例如: 给出数组A=[1,1,2],你的函数调用之后必须返回长度length=2,并且A现在变成[1,2]. 输入 一个已排序的数组,例如[1,1,2]. 输出 返回数组新的长度,例如length=2. 快慢指针法 设置fast指针遍历数组,slow指针指向不重复元素的下一位. public static int remov

向一个数组中插入一个1~100的随机数

namespace ConsoleApplication2 { class Program { static void Main(string[] args) { List<int> list = new List<int>(); Random ran = new Random(); while(true) { if (list.Count >= 100) { break; } int s = ran.Next(1, 101); if (!list.Contains(s))

java实现把两个有序数组合并到一个数组的实例

如下所示: package com.test.sort; public class testMerge { public static void main(String[] args) { int[] a = { 1, 3, 5 }; int[] b = { 2, 3, 4, 7 }; merge m = new merge(); m.method(a, b); } } class merge { public void method(int[] a, int[] b) { int l = a.

PHP实现找出有序数组中绝对值最小的数算法分析

本文实例讲述了PHP实现找出有序数组中绝对值最小的数算法.分享给大家供大家参考,具体如下: 问题: 一个有序数组,值有可能有负值,也有可能没有,现需要找出其中绝对值最小的值. 方法1: 遍历数组,找到绝对值最小值,时间复杂度O(n),n为元素个数. 方法2: 二分查找,因为数组有序,可以利用二分查找,时间复杂度O(logn). 分析步骤: 1. 如果第一个数为正数,说明整个数组没有负数,直接返回第一个数 2. 如果最后一个数为负数,说明整个数组没有正数,直接返回最后一个数 3. 数组元素有正有负

php数组函数序列之array_unshift() 在数组开头插入一个或多个元素

array_unshift()定义和用法 array_unshift() 函数在数组开头插入一个或多个元素. 被加上的元素作为一个整体添加,这些元素在数组中的顺序和在参数中的顺序一样. 该函数会返回数组中元素的个数. 语法 array_unshift(array,value1,value2,value3...)参数 描述 array 必需.规定输入的数组. value1 必需.规定插入的值. value2 可选.规定插入的值. value3 可选.规定插入的值. 提示和注释 注释:所有的数值键名

java中删除 数组中的指定元素方法

java中删除 数组中的指定元素要如何来实现呢,如果各位对于这个算法不是很清楚可以和小编一起来看一篇关于java中删除 数组中的指定元素的例子. java的api中,并没有提供删除数组中元素的方法.虽然数组是一个对象,不过并没有提供add().remove()或查找元素的方法.这就是为什么类似ArrayList和HashSet受欢迎的原因. 不过,我们要感谢Apache Commons Utils,我们可以使用这个库的ArrayUtils类来轻易的删除数组中的元素.不过有一点需要注意,数组是在大

Java实现删除排序数组中重复元素的方法小结【三种方法比较】

本文实例讲述了Java实现删除排序数组中重复元素的方法.分享给大家供大家参考,具体如下: 题目描述: 给定一个排序数组,在原数组中删除重复出现的数字,使得每个元素只出现一次,并且返回新的数组的长度. 不要使用额外的数组空间,必须在原地没有额外空间的条件下完成. 一:通过ArrayList解决 时间复杂度和空间复杂度都为O(n) ArrayList<Integer> list = new ArrayList<Integer>(); // 去掉数组中重复的元素 public int r

java使用分隔符连接数组中每个元素的实例

如下所示: double[] features3 = {1,2,3};//如果是基本类型需先转为对象 <span style="font-family:Arial;font-size:14px;">commons-lang3包可用</span> Double[] features4 = ArrayUtils.toObject(features3); public String listToString(List list, char separator) { r

Java如何找出数组中重复的数字

题目描述:找出数组中重复的数字,具体内容如下 在一个长度为n的数组里的所有数字都在 0~n-1的范围内.数组中某些数字是重复的,但不知道有几个数字是重复的,也不知道每个数字重复了几次.请找出数组中任意一个重复的数字.例如:如果输入长度为7的数组{2,3,1,0,2,5,3},那么对应的输出的是重复的数字2或者3 这个面试题是剑指offer中的面试题3,,下面我用java代码实现. 算法步骤: 从头到尾依次扫描数组中的每个数字. 1. 当扫描到下表为i的数字时,首先比较这个数字(用m表示)是不是等