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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© zhiqi0721 中级黑马   /  2016-6-21 22:13  /  772 人查看  /  3 人回复  /   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

3 个回复

正序浏览
用计数的思想就可以了
回复 使用道具 举报
package com.hhh.homework;

import java.util.ArrayList;
import java.util.List;

public class homework3 {

        /**
         *                 需求:定义方法统计集合中指定元素出现的次数,如"a" 3,"b" 2,"c" 1
         *
         *                 思路:1.就是写个方法,拿传入的字符串和传入的集合中的元素比较
         *                                    2.统计个数,增加一个计数器
         *                                    2.遍历集合,在遍历中用判断语句,每包含一次,计数器增加,equalse就行
         *                                     3.else 用于不包含情况
         */
        public static void main(String[] args) {
                ArrayList<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
        }
        // 统计集合中元素出现的次数
        private static int frequency(List<String> list, String value) {
                int count = 0;
                // 1.使用增强for遍历集合
                for (String str : list) {
                        // 2.如果当前元素是要查找的元素value,计数器count加1
                        if (value.equals(str))
                                count++;
                }
                // 3.返回计数器
                return count;
        }

}
回复 使用道具 举报
设置一个统计变量,遍历list,对传入的字符串进行比较,相同+1就好了啊。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马