原创

Java8stream流操作以及判断字符出现次数

博主在写代码的时候没事总结起来的一些Java8的stream流方法以及,判断字符出现次数的小测试,留着希望能帮助有缘人,哈哈

public static void main(String[] args) {
        long start = System.currentTimeMillis();
        List<Integer> numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);
        // 获取对应的平方数并去重
        List<Integer> squaresList = numbers.stream().map(i -> i * i).distinct().sorted(Comparator.comparing(Integer::intValue).reversed()).collect(Collectors.toList());
        System.out.println(squaresList);

        List<Integer> nums = Lists.newArrayList(1, 1, null, 2, 3, 4, null, 12, 5, 6, 22, 7, 8, 9, 10);
        //不要前几个,然后再从中取前几个之和
        int sum = nums.stream().filter(Objects::nonNull).distinct().mapToInt(num -> num * 2).skip(2).limit(4).sum();
        System.out.println("sum is:" + sum);
        //不要前两个,然后遍历到list集合中去
        IntStream skip = nums.stream().filter(Objects::nonNull).distinct().mapToInt(num -> num * 2).skip(2);
        List<Integer> list = new ArrayList<>();
        skip.forEach(list::add);
        System.out.println("list is:" + list);

        long end = System.currentTimeMillis();
        System.out.println("总共耗费:" + ((end - start)));


        String scan = new Scanner(System.in).nextLine();//获取键盘上输入的字符串;
        Map<Character, Integer> map = new HashMap<Character, Integer>();//新建一个HashMap对象;    
        //通过FOR循环,把String的键值存放到map
        for (int i = 0; i < scan.length(); i++) {
            char temp = scan.charAt(i);//通过循环,找到字符串的每一位字符并存入到temp中;
            if (map.containsKey(temp)) {//如果map里面有temp这个字符
                map.put(temp, map.get(temp) + 1);//把temp的值加1;
            } else {//如果map里面没有temp这个字符,
                map.put(temp, 1);//把temp的值设为1;
            }
        }
        int maxnum = Collections.max(map.values());//调用Collections类的max方法,获取map的值的集合;并找出最大的那个值;
        Set<Character> set = new HashSet<Character>();//建立一个set对象
        for (Map.Entry<Character, Integer> entry1 : map.entrySet()) { //通过集合的循环,把map的值放到entry1里,通过entry1找到值最大的maxnum的key;
            if (entry1.getValue() == maxnum) {
                set.add(entry1.getKey());
            }
        }
        System.out.println("出现次数最多的字母为:" + set + " 最多出现次数为" + maxnum);
    }
正文到此结束
阿里云主机低至1折