java-8相关内容

Java 8 函数式接口,无参数,无返回值

Java 8 函数式接口对于什么都不接受也不返回什么的方法是什么? 即,等效于 C# 无参数 Action 与 void 返回类型? 解决方案 如果我理解正确,你想要一个带有方法 void m() 的函数式接口.在这种情况下,您可以简单地使用 Runnable. ..
发布时间:2022-01-22 10:22:02 Java开发

如何将 Java 流转换为滑动窗口?

将流转换为滑动窗口的推荐方法是什么? 例如,在 Ruby 中,您可以使用 each_cons: irb(main):020:0>[1,2,3,4].each_cons(2) { |x|放 x.inspect }[1, 2][2, 3][3, 4]=>零irb(主):021:0>[1,2,3,4].each_cons(3) { |x|放 x.inspect }[1、2、3][2, 3, 4] ..
发布时间:2022-01-22 10:21:36 Java开发

如何最好地从可为空的对象创建 Java 8 流?

在获取流之前进行空检查的最佳/惯用方法是什么? 我有一个接收可能为空的 List 的方法.所以我不能只对传入的值调用 .stream() .如果值为空,是否有一些静态助手会给我一个空流? 解决方案 我同意 Stuart Marks 的观点 列表 == 空?Stream.empty() : list.stream() 是执行此操作的正确方法(请参阅他的答案),或者至少是在 Java 9 ..
发布时间:2022-01-22 10:21:26 Java开发

使用 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如何在多个属性上获得不同的列表

如何从对象列表中获取不同的(基于两个属性的不同)列表.例如,让有属性名称和价格的对象列表.现在我如何才能获得具有不同名称或价格的列表. 假设 列表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开发