Jdk8的Map的循环方式

1、

// 循环,key,value
map.forEach((k, v) -> {
    doSomething(k,v);
});

2、

// 循环map中的values
map.values().forEach(System.out :: println);

3、

// Map.entrySet来遍历key,value, 大容量时推荐使用
map.entrySet().forEach(entry -> {
    System.out.println(entry.getKey());
    System.out.println(entry.getValue());
});

4、

// 使用iterator来遍历Map.entrySet
map.entrySet().iterator().forEachRemaining(iter -> {
    System.out.println(iter.getKey());
    System.out.println(iter.getValue());
});

5、

// 遍历key
map.keySet().forEach(key -> {
    System.out.println(key);
    System.out.println(map.get(key));
});

 

转载于:https://my.oschina.net/u/2507440/blog/1844612

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JDK8中,引入了Stream API,这个API提供了一种更加简洁,高效的方式来处理数据的流式操作,Stream API支持对数据流进行过滤、映射、排序、聚合等多种操作。对于双重循环的情况,JDK8的Stream提供了三种方式:flatMapforEach和reduce。 1. flatMap:flatMap操作可以将一个Stream中的每个元素转换成另一个Stream,然后将所有Stream合并成一个。在处理双重循环的情况下,我们可以使用flatMap将两个Stream合并成一个,然后对结果进行处理。示例代码如下: ``` List<Integer> list1 = Arrays.asList(1, 2, 3); List<Integer> list2 = Arrays.asList(3, 4); List<int[]> result = list1.stream() .flatMap(i -> list2.stream() .map(j -> new int[]{i, j})) .collect(Collectors.toList()); result.forEach(arr -> System.out.println(Arrays.toString(arr))); ``` 2. forEachforEach操作可以对Stream中的每个元素执行指定的操作。我们可以在forEach中嵌套一层循环来处理双重循环的情况。示例代码如下: ``` List<Integer> list1 = Arrays.asList(1, 2, 3); List<Integer> list2 = Arrays.asList(3, 4); list1.forEach(i -> { list2.forEach(j -> { int[] arr = new int[]{i, j}; System.out.println(Arrays.toString(arr)); }); }); ``` 3. reduce:reduce操作可以将Stream中的元素通过指定的操作进行合并,返回一个Optional类型的结果。我们可以在reduce中嵌套一层循环来处理双重循环的情况。示例代码如下: ``` List<Integer> list1 = Arrays.asList(1, 2, 3); List<Integer> list2 = Arrays.asList(3, 4); List<int[]> result = list1.stream() .reduce(new ArrayList<>(), (acc, i) -> { list2.forEach(j -> acc.add(new int[]{i, j})); return acc; }, (l1, l2) -> {l1.addAll(l2); return l1;}); result.forEach(arr -> System.out.println(Arrays.toString(arr))); ``` 总之,在JDK8中处理双重循环可以使用flatMapforEach和reduce等操作来实现,这些操作让Java代码变得更加简洁、高效、易于理解。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值