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


    说明:

    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}

  • 相关阅读:
    话说地址栏的URL的最大长度
    程序员,我拿什么来拯救自己
    把女友升级为老婆的时候发生的BUG
    一个精典asp程序引发的错误引起的思考
    [转]提高 Web Service 数据传输效率的基本方法
    整理发布html的select控件实用js操作
    asp.net简单实现导出excel报表
    c#简单实现生成csv文件
    利用sql server直接创建日历
    jQuery学习笔记:效果
  • 原文地址:https://www.cnblogs.com/csophys/p/2366401.html
Copyright © 2020-2023  润新知