A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 某某帅 中级黑马   /  2016-9-16 23:13  /  787 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

        (1)有如下代码:
                List<String> list = new ArrayList<>();
               
                list.add("a");
                list.add("a");
                list.add("a");
                list.add("b");
                list.add("b");
                list.add("c");
                list.add("d");
                list.add("d");
                list.add("d");
                list.add("d");
                list.add("d");
               
                System.out.println(frequency(list, "a"));        // 3
                System.out.println(frequency(list, "b"));        // 2
                System.out.println(frequency(list, "c"));        // 1
                System.out.println(frequency(list, "d"));        // 5
                System.out.println(frequency(list, "xxx"));        // 0
        (2)定义方法统计集合中指定元素出现的次数,如"a" 3,"b" 2,"c" 1

4 个回复

倒序浏览
本帖最后由 zzdhm 于 2016-9-17 00:06 编辑

public static int frequency(List<String> list, String string) {
                HashMap<String, Integer> hm = new HashMap<>(); // 创建HashMap集合,键为要list集合中的元素,值为出现的个数
               for (String st : list) {             // 遍历,将元素到hm集合中
                        if (hm.containsKey(st)) {        // 判断是否集合中包含
                                hm.put(st, hm.get(st) + 1);      // 包含值加1
                        } else {
                                hm.put(st, 1);                 // 不包含 值为1
                        }

                }
                if (!hm.containsKey(string)) {           // 循环完,没有该字符串,返回0
                        return 0;
                }

                return hm.get(string);                // 返回键对应的值
        }
//方法2 :
public static int frequency(List<String> list, String string) {
                int count=0;
                for (String st : list) {
                        if(string.equals(st)){
                                count++;
                        }
                }
                return count;
        }




回复 使用道具 举报
看到大神的回复,学习到了新知识。
回复 使用道具 举报
public static int frequency(List<String> list, String string) {                 int count=0;                 for (String st : list) {                         if(string.equals(st)){                                 count++;                         }                 }                 return count;         }
回复 使用道具 举报
可以用计数器思想
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马