497得票15回答
在Java 8中从java.util.stream.Stream中检索列表

我在尝试使用Java 8的lambda表达式来轻松过滤集合。但是我没有找到一种简洁的方式来在同一语句中将结果作为新列表检索出来。以下是目前我最简洁的方法:List<Long> sourceLongList = Arrays.asList(1L, 10L, 50L, 80L, 100...

483得票16回答
Java 8并行流中的自定义线程池

在Java 8的并行流中,是否有可能指定自定义的线程池?我找不到相关信息。 假设我有一个服务器应用程序,并且我想使用并行流。但是应用程序很大而且多线程,因此我想将其分隔开来。我不希望一个模块中的缓慢运行任务阻塞另一个模块的任务。 如果我不能为不同的模块使用不同的线程池,那么在大多数真实世界...

480得票13回答
如何使用Java Streams对整数列表求和?

我想对整数列表进行求和。以下是代码示例,但语法不太对。这段代码能否进行优化?Map<String, Integer> integers; integers.values().stream().mapToInt(i -> i).sum();

394得票13回答
使用流生成地图时忽略重复项

Map<String, String> phoneBook = people.stream() .collect(toMap(Person::getName, ...

367得票18回答
如何在Java 8的lambda表达式/流中抛出已检查异常?

如何在Java 8的lambda表达式中抛出已检查异常,例如在流中使用? 换句话说,我想让这样的代码编译通过: public List<Class> getClasses() throws ClassNotFoundException { List<C...

365得票3回答
Java 8的lambda表达式,Function.identity()或t->t

关于Function.identity()方法的使用,我有一个问题。 想象一下以下代码:Arrays.asList("a", "b", "c") .stream() .map(Function.identity()) // <- This, ...

340得票5回答
Collection.stream().forEach()和Collection.forEach()的区别是什么?

我明白使用.stream(),可以像使用.filter()一样使用链式操作,或者使用并行流。但是如果我需要执行小操作(例如,打印列表元素),它们之间有什么区别呢?collection.stream().forEach(System.out::println); collection.forEa...

332得票24回答
将Java Stream过滤为1个且仅有1个元素

我正在尝试使用Java 8的Stream来查找LinkedList中的元素。然而,我想要保证过滤条件只有一个匹配项。 看一下这段代码:public static void main(String[] args) { LinkedList<User> users = ne...

328得票4回答
Java 8 流:多个过滤器 vs. 复杂条件

有时你想要用不止一个条件来过滤一个 Stream: myList.stream().filter(x -> x.size() > 10).filter(x -> x.isCool()) ... 或者您可以使用一个复杂条件和一个单一的过滤器来实现相同的效果: myLis...

309得票12回答
使用Java 8的Optional和Stream::flatMap。

新的Java 8流框架以及相关工具使得编写Java代码更加简洁,但我遇到了一个看似简单却很难变得简洁的情况。 考虑一个List<Thing> things和方法Optional<Other> resolve(Thing thing)。我想将Thing映射为Optiona...