1064得票10回答
如何将Java 8的Stream转换为数组?

如何将Java 8的Stream最简单/最短地转换为数组?

1047得票23回答
将Java 8中的List<V>转换为Map<K, V>

我想使用Java 8的流和lambda将对象列表转换为Map。 这是我在Java 7及以下版本中的写法。private Map&lt;String, Choice&gt; nameMap(List&lt;Choice&gt; choices) { final Map&lt;S...

967得票22回答
Java 8中的map()和flatMap()方法有什么区别?

在Java 8中,Stream.map()和Stream.flatMap()方法有什么区别?

689得票8回答
根据条件查找第一个元素

我刚开始尝试使用Java 8 lambda表达式,并试图实现一些我在函数式语言中习惯的东西。 例如,大多数函数式语言都有一些基于序列或列表操作的查找函数,返回满足谓词条件的第一个元素。在Java 8中,我唯一能想到的实现方式是:lst.stream() .filter(x -&gt;...

673得票34回答
Java 8 按属性去重

在Java 8中,如何使用流(Stream) API通过检查每个对象的某个属性的唯一性来过滤集合? 例如,我有一个 Person 对象列表,我想移除名字相同的人。persons.stream().distinct(); 将使用默认的相等性检查来检查一个 Person 对象,因此我需要类似于以...

650得票6回答
在可能的情况下,我是否应该始终使用并行流?

使用Java 8和lambda表达式,迭代集合并将其作为流进行操作变得十分容易,而且同样轻松的还能使用并行流。以下是来自文档中的两个示例,第二个示例使用了parallelStream:myShapesCollection.stream() .filter(e -&gt; e.getCo...

549得票8回答
Java 8中的Iterable.forEach()和foreach循环有什么区别?

以下哪一项是Java 8中更好的实践方法? Java 8:joins.forEach(join -&gt; mIrc.join(mSession, join)); Java 7:for (String join : joins) { mIrc.join(mSession, join)...

539得票13回答
Collectors.toMap中空条目值导致NullPointerException

Collectors.toMap方法会在值为null时抛出NullPointerException异常。我不理解这种行为,因为map可以包含值为null的指针并且没有任何问题。是否有充分的理由使得Collectors.toMap不支持值为null的情况? 此外,是否有Java 8中优雅的方式来...

517得票26回答
Java 8中是否有一种简明的方式在流中迭代索引?

有没有一种简洁的方法在迭代流时访问流中的索引?String[] names = {"Sam","Pamela", "Dave", "Pascal", "Erik"}; List&lt;String&gt; nameList; Stream&lt;Integer&gt; indices = i...

510得票8回答
使用Java 8 JDK将Iterable转换为Stream

我有一个返回java.lang.Iterable&lt;T&gt;的接口。 我想使用Java 8 Stream API操纵该结果。 然而,Iterable不能"stream"。 有没有办法在不将其转换为List的情况下将Iterable用作Stream?