黑马程序员技术交流社区

标题: 集合问题 [打印本页]

作者: 某某帅    时间: 2016-9-16 23:13
标题: 集合问题
        (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
作者: zzdhm    时间: 2016-9-17 00:00
本帖最后由 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;
        }





作者: a869588615    时间: 2016-9-17 00:03
看到大神的回复,学习到了新知识。
作者: taozhihui    时间: 2016-9-17 00:15
public static int frequency(List<String> list, String string) {                 int count=0;                 for (String st : list) {                         if(string.equals(st)){                                 count++;                         }                 }                 return count;         }
作者: 宝瓶子    时间: 2016-9-17 00:17
可以用计数器思想




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2