java-8相关内容

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开发

如何使用 Java 8 流映射到多个元素?

我有这样的课: 类 MultiDataPoint {私有日期时间时间戳;私有地图关键数据;} 我想为每个 MultiDataPoint 生成 , 类数据集 {公共字符串密钥;列出数据点;}类数据点{日期时间时间戳;号码资料;} 当然,一个“键"在多个 MultiDataPoints 中可以是相同的. 那么给定一个 List,我 ..
发布时间:2022-01-22 10:46:06 Java开发

使用流转换和过滤 Java Map

我有一个想要转换和过滤的 Java 地图.作为一个简单的例子,假设我想将所有值转换为整数,然后删除奇数项. Map输入 = 新哈希映射();input.put("a", "1234");input.put("b", "2345");input.put("c", "3456");input.put("d", "4567");映射输出 = input.entrySet().str ..
发布时间:2022-01-22 10:45:58 Java开发

Java 8 Streams 可以对集合中的项目进行操作,然后将其删除吗?

和几乎所有人一样,我仍在学习新的 Java 8 Streams API 的复杂性(并喜欢它们).我有一个关于流使用的问题.我将提供一个简化的示例. Java Streams 允许我们获取一个 Collection,并在其上使用 stream() 方法来接收其所有元素的流.其中有许多有用的方法,例如 filter()、map() 和 forEach(),它们允许我们对内容使用 lambda 操 ..
发布时间:2022-01-22 10:45:29 Java开发

Java 8 修改流元素

我想用 Java 8 编写纯函数,它将一个集合作为参数,对该集合的每个对象应用一些更改,并在更新后返回一个新集合.我想遵循 FP 原则,所以我不想更新/修改作为参数传递的集合. 有没有什么方法可以用 Stream API 做到这一点,而无需先创建原始集合的副本(然后使用 forEach 或“正常"for 循环)? 下面的示例对象,假设我想将文本附加到对象属性之一: 公共类 Sampl ..
发布时间:2022-01-22 10:45:12 Java开发

Java 8 流和 RxJava 可观察对象之间的区别

Java 8 流是否类似于 RxJava 可观察对象? Java 8 流定义: 新 java.util.stream 包中的类提供了 Stream API支持对元素流进行函数式操作. 解决方案 简答 所有序列/流处理库都为管道构建提供了非常相似的 API.不同之处在于用于处理多线程和管道组合的 API. 长答案 RxJava 与 Stream 完全不同.在所有 ..
发布时间:2022-01-22 10:44:38 其他开发

提供流生成的限制条件

我正在编写一个代码来计算斐波那契数.使用此代码,我可以生成斐波那契数列的前 n 个数字. Stream.generate(new Supplier() {私人长 n1 = 1;私人长 n2 = 2;@覆盖公共长获取(){长斐波那契 = n1;长 n3 = n2 + n1;n1 = n2;n2 = n3;返回斐波那契;}}).limit(50).forEach(System.out::printl ..
发布时间:2022-01-22 10:44:06 Java开发

Java 8 流:IntStream 到字符串

在 Java 8 流 API 中,对任何 String 对象调用 chars() 会返回一个包含所有字符的 IntStream 对象. 将返回的 IntStream 对象转换回 String 的正确方法是什么?调用 toArray() 会给我一个 int[],它不被任何 String 构造函数接受. 解决方案 你可以使用toArray(),然后String(int[], int, i ..
发布时间:2022-01-22 10:44:01 Java开发

积累一个Java Stream,然后再处理它

我的文档如下所示: 数据.txt 100, "一些文字"101,“更多文字"102、《更多文字》 我使用正则表达式处理它并返回一个新的处理文档,如下所示: 流行 = Files.lines(Paths.get(data.txt);模式正则表达式 = Pattern.compile("([\\d{1,3}]),(.*)");列出结果 =行.map(正则表达式::匹配器) ..
发布时间:2022-01-22 10:43:24 Java开发

使用 Java 8 Stream API 根据 ID 和日期过滤对象

我有一个 Contact 类,每个实例都有一个唯一的 contactId. 公开课联系方式{私人长联系方式;...其他变量,getter,setter等...} 还有一个 Log 类,详细说明 Contact 在某个 lastUpdated 日期执行的 action. 公共类日志{私人联系方式;私人日期最后更新;私有字符串动作;...其他变量,getter,setter等...} 现在,在 ..
发布时间:2022-01-22 10:43:01 Java开发