java8 stream循环次数_Java8stream流操作以及判断字符出现次数

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

public static void main(String[] args) {

long start = System.currentTimeMillis();

List numbers = Arrays.asList(3, 2, 2, 3, 7, 3, 5);

// 获取对应的平方数并去重

List squaresList = numbers.stream().map(i -> i * i).distinct().sorted(Comparator.comparing(Integer::intValue).reversed()).collect(Collectors.toList());

System.out.println(squaresList);

List 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 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 map = new HashMap();//新建一个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 set = new HashSet();//建立一个set对象

for (Map.Entry entry1 : map.entrySet()) { //通过集合的循环,把map的值放到entry1里,通过entry1找到值最大的maxnum的key;

if (entry1.getValue() == maxnum) {

set.add(entry1.getKey());

}

}

System.out.println("出现次数最多的字母为:" + set + " 最多出现次数为" + maxnum);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值