使用arraylist完成

循环从控制台录入26个英文字符,退出后统计每个字符的个数


    void countEnFrequency(){
        Scanner scanner = new Scanner(System.in);
        int[] hash = new int[85];
        System.out.println("请在控制台属于26个英文字母。");
        for (int i = 1; i <= 26; i++) {
            if(!check(hash, i, scanner)){
                check(hash, i, scanner);
            }
        }

        ArrayList<String> count = new ArrayList<>();
        for (int i = 0; i < 85; i++) {
            if(hash[i] > 0) {
                count.add(String.valueOf((char) (i + 'A')) + "=" + hash[i]);
            }
        }

        System.out.println(count.toString());
    }

    boolean check(int[] hash, int idx, Scanner scan) {
        System.out.print(idx + ":");
        String input = scan.next();
        if(input.length() == 1) {
            if(Character.isLetter(input.charAt(0))) {
                hash[input.charAt(0) - 'A']++;
                return true;
            } else {
                System.out.println("输入不合法,请重新键入");
                return false;
            }
        }
        System.out.println("输入不合法,请重新键入");
        return false;
    }

        List<Integer> types = new ArrayList<Integer>(){{add(1); add(2); add(3); add(0);add(0);}};
        Map<Integer, Long> collect4 = types.stream().collect(Collectors.groupingBy(Integer::intValue, Collectors.counting()));


实时多次输入统计:
对于这个需求,用Hash好一点。
先用HashMap < String, Integer>进行字母和次数的统计,再将其进行遍历输出。
用链表的话每次输入都要循环链表去维护次数,而用hash查找对应的字母快一点。

输入一次统计:
直接写一个字符串分析方法,将其中的字母分类统计出来。