java-stream相关内容

使用 Java 8 流修改列表中对象的属性值

我在 ArrayList 中有一个 Fruit 对象列表,我想将 fruitName 修改为其复数名称. 参考例子: @Data@AllArgsConstructor@ToString类水果{长身份证;字符串名称;字符串国家;}列出水果 = Lists.newArrayList();fruits.add(new Fruit(1L, "Apple", "India"));fruits ..
发布时间:2022-01-22 10:21:01 其他开发

如何在 Java 8 流 forEach 中使用 if-else 逻辑

下面的 2 个流调用中显示了我想要做的事情.我想根据某些条件将一个集合拆分为 2 个新集合.理想情况下,我想在 1 中执行此操作.我已经看到了用于流的 .map 函数的条件,但找不到 forEach 的任何内容.实现我想要的最佳方式是什么? animalMap.entrySet().stream().filter(pair->pair.getValue() != null).forEach(p ..
发布时间:2022-01-22 10:20:55 Java开发

如何在 Java 8 中使用流从整数中找到最大值?

我有一个 Integer list 列表,从 list.stream() 我想要最大值. 最简单的方法是什么?我需要比较器吗? 解决方案 您可以将流转换为 IntStream: OptionalInt max = list.stream().mapToInt(Integer::intValue).max(); 或者指定自然顺序比较器: 可选max = list.stream() ..
发布时间:2022-01-22 10:20:36 其他开发

Java8流式传输类层次结构

我正在慢慢学习 Java 8 的新特性,我正在尝试找到一种将类层次结构(从子级到父级)作为流处理的方法. 例如在类或其父类上查找注释. 在 Java 8 之前,我会这样做: public static T getAnnonationOn(Class type, Class annType) {类t = 类型;T注释=空;w ..
发布时间:2022-01-22 10:19:53 其他开发

Java 8 按字符串分组

这是我的代码: 公共类 StudentData {公共静态列表获取数据(){返回 Arrays.asList(新学生(1,“a1",1,Arrays.asList(“板球",“足球",“篮球")),新学生(2,“a2",1,Arrays.asList(“国际象棋",“足球")),新学生(3,“a3",2,Arrays.asList(“运行")),新学生(4,“a4",2,Arrays.a ..
发布时间:2022-01-22 10:19:43 Java开发

如何使用 Java 8 从对象列表中获取最小值和最大值

我有这样的课: 公共类测试{私有字符串 Fname;私有字符串 Lname;私有字符串年龄;//getter、setter、构造函数、toString、equals、hashCode等} 和一个类似 List 的列表testList 填充了 Test 元素. 如何使用 Java 8 获取 age 的最小值和最大值? 解决方案 为了简化事情,您可能应该将您的年龄设为 I ..
发布时间:2022-01-22 10:19:34 Java开发

使用 Java 8 合并两个地图

我有两张这样的地图: map1 = new Map();map2 = new Map();我的对象 {整数标记1;整数标记2;} 我想要做的是将两个地图合并成一个 map3 像这样: 如果 map1.place 不在 map2.place 中,那么我将条目添加到 map3. 如果 map2.place 不在 map1.place 中,则相同,我将条 ..
发布时间:2022-01-22 10:19:27 Java开发

java 8如何在多个属性上获得不同的列表

如何从对象列表中获取不同的(基于两个属性的不同)列表.例如,让有属性名称和价格的对象列表.现在我如何才能获得具有不同名称或价格的列表. 假设 列表l1 = getlist();//getlist 将返回列表. 现在让 l1 具有以下属性(名称、价格):- n1, p1 n1, p2 n2, p1 n2, p3 现在过滤后的列表应该是- n1, p1 n2, p3 ..
发布时间:2022-01-22 10:18:53 Java开发

流如何停止?

我想知道当我使用 Stream.generate 创建自己的无限流时,标准库中的流如何停止... 例如,当您有一个包含记录的列表时: 列表记录 = getListWithRecords();records.stream().forEach(/* 做某事 */); 流不会是无限的并且永远运行,但是当遍历列表中的所有项目时它会停止.但这是如何工作的?相同的功能适用于 Files.li ..
发布时间:2022-01-22 10:18:23 其他开发

Java Stream API - 计算嵌套列表的项目

假设我们有一个国家/地区列表:List,每个国家/地区都有一个对其区域列表的引用:List(例如以美国为例).像这样的: 美国阿拉巴马州阿拉斯加州亚利桑那...德国巴登-符腾堡州巴伐利亚勃兰登堡... 在“普通"Java 中,我们可以计算所有区域,例如这样: 列表国家 = ...整数区域计数 = 0;对于(国家/地区:国家){if (country.getRegions() != n ..
发布时间:2022-01-22 10:17:42 Java开发

分组 Java8 流而不收集它

Java 8 中是否有任何方法可以对 java.util.stream.Stream 中的元素进行分组而不收集它们?我希望结果再次成为 Stream .因为我必须处理大量数据甚至无限流,所以我无法先收集数据并再次流式传输结果. 所有需要分组的元素在第一个流中都是连续的.因此,我喜欢保持流评估惰性. 解决方案 没有办法使用标准的 Stream API.一般来说,您不能这样做,因为将来总 ..
发布时间:2022-01-22 10:17:35 Java开发

Java 流阶段是连续的吗?

我有一个关于中间阶段顺序状态的问题 - 一个阶段的操作是否应用于所有输入流(项目)或是所有阶段/操作应用于每个流项目? 我知道这个问题可能不容易理解,所以我举个例子.关于以下流处理: 列表strings = Arrays.asList("Java 流中间阶段是连续的吗?".split(" "));字符串.stream().filter(word -> word.length() > 4). ..
发布时间:2022-01-22 10:17:01 Java开发

Java 8 中的顺序流在调用 collect 时是否使用组合器参数?

如果我在顺序流上调用 collect(例如,通过调用 Collection.stream()),那么它会使用我传递给 collect 的组合器参数吗?我想不是,但我在文档中什么也没看到.如果我是正确的,那么必须提供一些我知道不会被使用的东西(如果我知道它是一个顺序流)似乎很不幸. 解决方案 记住要针对接口规范进行开发——而不是针对实现.下一个 Java 版本的实现可能会发生变化,而规范应该 ..
发布时间:2022-01-22 10:16:45 Java开发

使用 Files.lines 修改文件

我想读入一个文件并用新文本替换一些文本.使用 asm 和 int 21h 会很简单,但我想使用新的 java 8 流. Files.write(outf.toPath(),(Iterable)Files.lines(inf)::iterator,创建,写入,TRUNCATE_EXISTING); 我想要一个 lines.replace("/*replace me*/","ne ..
发布时间:2022-01-22 10:16:19 其他开发

如何从迭代器创建 Java 8 Stream?

是否可以从 Iterator 创建 Stream,其中对象的序列与重复调用迭代器的 next() 方法生成的对象序列相同?我正在考虑的具体情况涉及 TreeSet.descendingIterator() 返回的迭代器的使用,但我可以想象在其他情况下迭代器可用,但它引用的集合不可用. 例如,对于 TreeSettset 我们可以编写 tset.stream()... 并按照集合的排序顺 ..
发布时间:2022-01-22 10:15:40 Java开发