我最近开始检查新的Java8特性。
我遇到过这个foreach
迭代器-它对集合进行迭代。
list.forEach(i -> System.out.println(i));
比如,我希望它从第2个值开始,然后迭代到第2个最后一个值。或者类似的东西--或者其他元素。
我要怎么做?
若要对原始列表的某一节进行迭代,请使用subList方法:
list.subList(1, list.length()-1)
.stream() // This line is optional since List already has a foreach method taking a Consumer as parameter
.forEach(...);
主要内容:1 Java8 forEach方法的介绍,2 Java8 forEach方法的声明,3 Java8 forEach方法的案例1,4 Java8 forEach方法的案例21 Java8 forEach方法的介绍 Java提供了一个新的forEach() 方法来迭代元素。它在Iterable和Stream接口中定义。这是Iterable接口中定义的默认方法。扩展Iterable接口的集合类可以使用forEach循环来迭代元素。 此方法采用单个参数,该参数是功能接口。因此,您可以将lamb
替代的解决方法可以是将有限的函数转换为对检查的异常更友好的普通旧foreach循环。 但天真的方法是失败的: 更新 回答这个问题的一个技巧以前在Why does stream not implementing iterable 上发布过?作为旁侧答案并不能真正回答问题本身。我认为这不足以将这个问题定性为那个问题的重复,因为他们问的是不同的问题。
问题内容: 我继承了很多代码,这些代码大量使用并行数组来存储键/值对。这样做确实很有意义,但是编写循环访问这些值的循环有点尴尬。我真的很喜欢新的Java foreach构造,但是似乎没有一种方法可以使用它遍历并行列表。 使用普通循环,我可以轻松地做到这一点: 但是我认为这在语义上并不纯净,因为我们没有在迭代过程中检查的界限。是否有一些聪明的语法类似于我可以用于并行列表的for-each? 问题答案
在这篇文章中我将向你演示如何使用Java8中的foreach操作List和Map 1. Foreach操作Map 1.1 正常方式遍历Map Map<String, Integer> items = new HashMap<>(); items.put("A", 10); items.put("B", 20); items.put("C", 30); items.put("D", 40); ite
我可以在varArgs上使用或吗?
是否可以从迭代器创建一个流,其中对象的序列与通过反复调用迭代器的next()方法生成的序列相同?我所考虑的具体情况涉及到Treeset.desceningIterator()返回的迭代器的使用,但是我可以想象在其他情况下,迭代器是可用的,而不是它所引用的集合。 例如,对于,我们可以编写并按照该集合的排序顺序获取该集合中的对象流,但是如果我们希望它们按照不同的顺序,比如通过使用获得的顺序呢?我想象的