zoukankan      html  css  js  c++  java
  • 统计字符串数组中每个字符串所出现的次数

    说明:

    1.如题所示,这种类型这我们做项目的时候经常遇到,是非常常见的类型。

    2.这里面向的对象是String 类型。对于其他类型包括自定义的对象也很容易移植,但是对于String和其他基本变量类型由于可以进行大小比较,所以这些类型的数据可以排序后再统计其出现的次数,这样可以用其他方法来进行统计。

    过程:

    1.字符串数组只遍历一次。

    2.设计一个Hash,用于保存Hash后的String值,和其出现的次数。可以用HashMap(key,value)来实现。

    3.对于每一个string ,进行Hash处理。

    4.输出Hash。

    类和方法设计:

    类:StringSameCount.java

       - HashMap map;

    /**

    对于每一个String,插入Hash

    **/

    +hashInsert(String)

    {

      String 已存在:map.put(string,value++);

      String不存在:map.put(string,1);

    }

    +HashMap getHashMap()

    {

      return map;

    }

    最后的StringSameCount.java源代码(测试可用)如下:

    import java.util.HashMap;


    public class StringSameCount {
    private HashMap map;
    private int counter; //用于统计 map中的value

    StringSameCount()
    {
    map=new HashMap<String,Integer>();
    }

    /**
    * 用于在hashmap中插入字符串
    *
    @param string
    */
    public void hashInsert(String string){
    if (map.containsKey(string)){
    counter=(Integer)map.get(string);
    map.put(string,++counter);
    }
    else{
    map.put(string, 1);
    }
    }

    public HashMap getHashMap(){
    return map;
    }
    }


    测试调用如下:

    import java.util.HashMap;
    import java.util.Iterator;

    public class Main {
    public static void main(String[] args) {
    StringSameCount ssc=new StringSameCount();
    ssc.hashInsert("ab");
    ssc.hashInsert("bc");
    ssc.hashInsert("ab");
    ssc.hashInsert("ab");
    ssc.hashInsert("bc");
    ssc.hashInsert("bcd");
    ssc.hashInsert("c");
    HashMap map=ssc.getHashMap();
    Iterator it =map.keySet().iterator();
    String temp;
    while(it.hasNext()){
    temp=(String)it.next();
    System.out.println(temp+"出现了"+map.get(temp)+"次");
    }
    //也可以直接输出map;
    System.out.println(map);

    }
    }

    最后得到的输出结果:

    c出现了1次
    bcd出现了1次
    ab出现了3次
    bc出现了2次
    {c=1, bcd=1, ab=3, bc=2}

  • 相关阅读:
    [Unity3D]UI界面之瞄准镜设置说明
    [Unity3d]游戏中子弹碰撞的处理
    [Unity3D]引擎学习之注意事项(持续更新中)
    [Unity3D]添加音效说明
    [Unity3d]3D项目转换为VR项目(暴风魔镜SDK)
    [Unity3d]调试问题之UI/Image不显示
    [Unity3d]向量的过度方法以及拖尾效果
    [Unity3D]脚本生命周期学习
    windows server 2008 应用程序池自动关闭 C:Windowssystem32RpcProxyRpcProxy.dll failed to load
    create a (VSTO) Office 2007 add-in using VS 2012?
  • 原文地址:https://www.cnblogs.com/csophys/p/2366401.html
Copyright © 2011-2022 走看看