java-stream相关内容

入口集上的 Java 8 流映射

我正在尝试对 Map 对象中的每个条目执行映射操作. 我需要从键中取出前缀并将值从一种类型转换为另一种类型.我的代码从 Map 获取配置条目并转换为 Map (AttributeType 只是一个类持有一些信息.进一步的解释与这个问题无关.) 使用 Java 8 Streams 我所能想到的最好的方法如下: ..
发布时间:2022-01-22 10:48:59 Java开发

Files.lines 在 Java8 中跳过断行

我正在使用 Files.lines(...) 读取一个非常大 (500mb) 的文件.它读取文件的一部分,但在某些时候它会因 java.io.UncheckedIOException: java.nio.charset.MalformedInputException: Input length = 1 而中断 我认为该文件有不同字符集的行.有没有办法跳过这些断线?我知道返回的流由 Reader ..
发布时间:2022-01-22 10:48:52 Java开发

从java 8中的并行流中收集

我想接受一个输入并在其上应用并行流,然后我想输出为列表.输入可以是我们可以应用流的任何列表或任何集合. 我担心的是,如果我们想要输出作为映射它们,我们有一个来自 java 的选项,就像 list.parallelStream().collect(Collectors.toConcurrentMap(args)) 但是我看不到以线程安全的方式从并行流中收集以提供列表作为输出的选项.我在那里 ..
发布时间:2022-01-22 10:48:22 Java开发

Java 8 根据条件应用流过滤器

在 Java 8 中,有没有办法根据条件在流上应用过滤器, 例子 我有这个直播 if (isAccessDisplayEnabled) {src = (List ) sourceMeta.getAllSources.parallelStream().filter(k - > isAccessDisplayEnabled((Source) k)).filter(k ..
发布时间:2022-01-22 10:48:09 Java开发

如何使用 Java 8 流查找较大值之前的所有值?

用例 通过在工作中发布的一些编码 Katas,我偶然发现了这个我不知道如何解决的问题. 使用 Java 8 Streams,给定一个正整数列表,生成一个整数在较大值之前的整数列表. [10, 1, 15, 30, 2, 6] 上述输入将产生: [1, 15, 2] 因为 1 在 15 之前,15 在 30 之前,2 在 6 之前. 非流式解决方案 public List ..
发布时间:2022-01-22 10:48:02 Java开发

如何使用 Collectors.groupingBy 创建嵌套地图?

我有一个类列表说 ProductDto 公共类 ProductDto {私有字符串 ID;私有字符串状态;私人布克订户;私有字符串类别;私有字符串类型;} 我想要一张如下图:- 地图> 属性映射如下: 地图 我知道使用 Collectors.groupingBy 可以轻松完成一级分组,没有任何麻烦. 我尝试将它用于嵌套级别,但是当作为键的字段开始出现相同的值时,它 ..
发布时间:2022-01-22 10:47:45 Java开发

Java 8 中嵌套映射的递归展平值

给定一个 Map,其中的值是 String 或另一个 Map,如何有人会使用 Java 8 将地图展平为单个值列表吗? 例子: Map - “key1" ->“价值1"-“key2"->“价值2"-“key3"->地图-“key3.1"->“价值3.1"-“key3.2"->“价值3.2"-“key3.3"->地图-“key3.3.1"->“价值3.3.1"-“key3.3.2"->“价值 ..
发布时间:2022-01-22 10:47:38 Java开发

Java流分组并汇总多个字段

我有一个列表 fooList 类 Foo {私有字符串类别;私人 int 金额;私人国际价格;...构造函数,吸气剂和二传手} 我想按类别分组,然后将金额和价格相加. 结果将存储在地图中: 地图>map = new HashMap(); 关键是 Foo 持有汇总的金额和价格,并带有一个列表作为所有具有相同类别的对象的值. 到目前为止,我已经尝试 ..
发布时间:2022-01-22 10:47:16 Java开发

Java 8 中的惰性流是如何实现的?

我正在阅读 Java 8,特别是“Streams API".我想知道流是如何变得懒惰的? 我相信流只是作为库添加的,并且没有对语言进行任何更改以支持惰性.另外,如果有人告诉我这是通过反思实现的,我会感到震惊. 解决方案 为什么需要反射来获得懒惰?例如,考虑这个类: 类 LazySeq{私人最终名单列表;私有谓词输入){this.list = new ArrayList ..
发布时间:2022-01-22 10:46:52 其他开发

在java 8中合并两个对象列表

我有一个 Java 类 Parent 有 20 个属性 (attrib1, attrib2 .. attrib20) 及其对应的 getter 和 setter.我还有两个 Parent 对象列表:list1 和 list2. 现在我想合并两个列表并避免基于 attrib1 和 attrib2 的重复对象. 使用 Java 8: 列表结果 = Stream.concat(li ..
发布时间:2022-01-22 10:46:44 Java开发

什么时候应该在 Java 中使用 IntStream.range?

我想知道什么时候可以有效地使用 IntStream.range.我不确定 IntStream.range 有多大用处的三个原因. (请将开始和结束视为整数.) 如果我想要一个数组,[start, start+1, ..., end-2, end-1],下面的代码要快得多. int[] arr = new int[end - start];整数索引 = 0;for(int i = st ..
发布时间:2022-01-22 10:46:36 Java开发

Java中的有限生成流-如何创建一个?

在 Java 中,可以使用 Stream.generate(supplier) 轻松生成无限流.但是,我需要生成一个最终会完成的流. 例如,想象一下,我想要一个目录中所有文件的流.文件的数量可能很大,因此我无法预先收集所有数据并从中创建一个流(通过 collection.stream()).我需要逐个生成序列.但是流显然会在某个时候结束,并且像 (collect() 或 findAny()) ..
发布时间:2022-01-22 10:46:21 Java开发