`
hjp222
  • 浏览: 16155 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
最近访客 更多访客>>
社区版块
存档分类
最新评论

面试题 统计数组里面相同字符的个数

    博客分类:
  • java
阅读更多
今天面试时问到我一个关于假如有个数组,里面有不知多少个元数,请你把相同元数给统计出来,如String [] a={"a","c","a","b","c","d"};
哎,面试能力差,没做出来,刚在谷歌一找,就搞定了!
import java.util.HashMap;
import java.util.Set;

public class Test {
public static void main(String[] args){
String [] a={"a","c","a","b","c","d"};
     HashMap<String, Integer> hash = new HashMap<String, Integer>();  
     for (int i = 0; i < a.length; i++) {  
         try {  

             if (!hash.isEmpty() && hash.containsKey(a[i])) {  
                 hash.put(a[i].toString(), hash.get(a[i]) + 1);  
             } else {  
                 hash.put(a[i].toString(), 1);  
             }  
         } catch (Exception e) {  

         }  
     }  
     Set<String> set = hash.keySet();  
     for (String key : set) {  
         System.out.println(key + "==>" + hash.get(key));  
     }  
}  
}

/*相关知识
* Map 对象来缓存数据, 比较常见的处理流程是:

1. 调用 Map 的 get() 方法获取数据;

2. 如果返回不为 null, 直接返回该数据;

3. 如果返回为 null, 则生成数据, 或者从其他地方获取数据, 然后存放入 Map 中, 最后返回该数据.

这里, 我们可以通过使用 Map 的containsKey() 方法来检测是否数据是否存在, 如果key存在, 则表明已经获取过一次数据, 那么直接返回该 key 在 Map 中的值. 不管是否为 null 都直接返回; 如果 key 不存在, 则去生成或者获取数据, 并放入到 Map 中, 并返回该数据.

这里使用 containsKey() 来检测可以应用于: 1. 从其他对方获取的数据可能为空, 并且不会有变化; 2. 获取数据比较耗时. 这个场景下, 使用该方法可以大大降低消耗, 特别是在同步情况下.

*/
分享到:
评论

相关推荐

    java面试题大全(2012版)

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    c++ 面试题 总结

    C++面试题 1.是不是一个父类写了一个virtual 函数,如果子类覆盖它的函数不加virtual ,也能实现多态? virtual修饰符会被隐形继承的。 private 也被集成,只事派生类没有访问权限而已 virtual可加可不加 子类的...

    程序员面试攻略 part1(共2个)

    第2章程序设计面试题的解答思路9 2.1 面试过程9 2.2 关于面试题11 2.3 答题方法11 2.4 遇到疑难时13 2.5 对解决方案进行分析15 第3章链表19 3.1 单向链表19 3.1.1 头指针的修改20 3.1.2 遍历21 3.1.3 ...

    程序员面试攻略part 2(共2个)

    第2章程序设计面试题的解答思路9 2.1 面试过程9 2.2 关于面试题11 2.3 答题方法11 2.4 遇到疑难时13 2.5 对解决方案进行分析15 第3章链表19 3.1 单向链表19 3.1.1 头指针的修改20 3.1.2 遍历21 3.1.3 ...

    世界500强面试题.pdf

    第一篇 面试题 ................................................................................ 8 1.1. 简介 ................................................................................................

    java面试宝典2012

    各种java面试题集,面试前必备哦, 1. Java基础部分 7 1、一个".java"源文件中是否可以包括多个类(不是内部类)?有什么限制? 8 2、Java有没有goto? 8 3、说说&和&&的区别。 8 4、在JAVA中如何跳出当前的多重嵌套...

    Java面试宝典-经典

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    最新Java面试宝典pdf版

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    Java面试宝典2012新版

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    Java面试宝典2010版

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 5、说明生活中遇到的二叉树,用java实现二叉树 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和重复...

    C/C++面试题目及解答.doc

    a)请编写一个 C 函数,该函数给出一个字节中被置 1 的位的个数,并请给出该题的至少一个不同解法。 第一种unsigned int TestAsOne0(char log) { int i; unsigned int num=0, val; for(i...

    Java面试笔试资料大全

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    JAVA面试宝典2010

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名和...

    Java面试宝典2012版

    4、有一个字符串,其中包含中文字符、英文字符和数字字符,请统计和打印出各个字符的个数。 65 5、说明生活中遇到的二叉树,用java实现二叉树 66 6、从类似如下的文本文件中读取出所有的姓名,并打印出重复的姓名...

Global site tag (gtag.js) - Google Analytics