98得票5回答
如何将Java枚举转换为流(Stream)?

我有一个第三方库,它给了我一个 Enumeration<String>。 我想懒惰地将该枚举作为Java 8 Stream进行处理,并调用诸如filter、map和flatMap等函数。 是否有现成的库可以实现这个功能?我已经在引用 Guava 和 Apache Commons,...

43得票8回答
无法在一个流中使用filter->forEach->collect吗?

我希望能够实现类似于这样的效果:items.stream() .filter(s-> s.contains("B")) .forEach(s-> s.setState("ok")) .collect(Collectors.toList()); 筛选,然后更改筛选结果...

175得票8回答
Java 8流 - collect与reduce

何时使用 collect() 和 reduce()?是否有好的、具体的例子说明什么情况下肯定更好地采用其中一种方法? Javadoc提到collect()是一种可变还原操作。 考虑到它是可变还原操作,我认为它需要同步(内部),这反过来可能会损害性能。据推测,reduce() 更容易并行化,...

7得票1回答
使用List实现Stream的anyMatch功能

我有一个“项”列表,每个项目都有一个项目帖子属性(它是帖子实例的列表)。 我想通过两个属性过滤我的“项”列表: 如果“item.isBig”并且任何一篇文章被启用,则收集返回的Stream。 然而,我不知道如何使用“i.getPosts#isEnabled”进行“anyMatch”。 ...

13得票1回答
使用Java Stream从Set of Sets中收集所有对象

我正在尝试学习Java Streams,试图从一个HashSet<SortedSet<Person>>中获取一个HashSet<Person>。 HashSet<Person> students = getAllStudents(); Hash...

7得票5回答
使用流计算正则表达式匹配次数

我正在尝试使用Java 8的lambda/streams解决方案来计算正则表达式模式的匹配次数。例如,对于这个模式/matcher: final Pattern pattern = Pattern.compile("\\d+"); final Matcher matcher = patter...

11得票4回答
使用Java 8 Stream解析.csv文件

我有一个包含500多个公司数据的.csv文件。文件中的每一行都是指向特定公司数据集的。我需要解析这个文件并从每个数据集中提取数据以调用4个不同的Web服务。 .csv文件的第一行包含列名。我正在尝试编写一个方法,它接受一个字符串参数,该参数与在.csv文件中找到的列标题相关联。 基于此参数...

9得票1回答
Java流:在预排序流上使用distinct()?

如此问题中所讨论的,distinct()的实现能够在流已经被排序的情况下使用更有效的算法。如果我们知道流已经被排序(例如因为它来自于外部预先排序的数据源,比如带有order by子句的SQL查询),但没有标记为已排序,那么该如何实现类似的结果呢?虽然有一个unordered()操作可以去除排序...

13得票2回答
使用Java8流对列表的第一个元素执行特定操作

我想在我的列表的第一个元素上执行某些操作,并对所有剩余元素执行不同的操作。 以下是我的代码片段:List<String> tokens = getDummyList(); if (!tokens.isEmpty()) { System.out.println("this ...

7得票3回答
Java:解释流和I/O流的区别

我正在寻找一个好的解释来说明Java 8中的“新”Streams和Java 7之前的“旧”I/O Streams之间的区别。对于没有任何函数式编程知识的人来说,很难理解它们是完全不同的东西,特别是因为它们的名称相同。我知道Stream API是全新的,甚至在某些方面具有革命性,但在我的幼稚思维...