java-stream相关内容

使用 Java 8 流计算加权平均值

如何计算 Map 的加权平均值,其中 Integer 值是要平均的 Double 值的权重.例如:地图有以下元素: (0.7, 100)//值为 0.7,权重为 100 (0.5, 200) (0.3, 300) (0.0, 400) 我希望使用 Java 8 流应用以下公式,但不确定如何同时计算分子和分母并同时保留它.这里如何使用reduction? 解决方案 您可以为 ..
发布时间:2022-01-22 10:33:12 Java开发

官方文档哪里说Java的并行流操作使用fork/join?

这是我对 Stream 框架: 某事创建了一个源 流 实现负责提供一个BaseStream#parallel() 方法,该方法又返回一个可以并行运行其操作的 Stream. 虽然有人已经找到了使用方法一个具有 Stream 框架并行执行的自定义线程池,我在 Java 8 API 中找不到任何提及默认 Java 8 并行 Stream 实现将使用 ForkJoinPool#common ..
发布时间:2022-01-22 10:32:57 Java开发

注册一个流“完成"钩

使用 Java 8 Stream API,我想注册一个“完成挂钩",如下所示: 流流 = Stream.of("a", "b", "c");//我无法控制的其他过滤器/映射stream.onComplete((Completion c) -> {//这就是我想做的:关闭资源();//这也可能有用:可选异常 = c.exception();exception.ifPresent(e -> ..
发布时间:2022-01-22 10:32:44 Java开发

Java 8 中的 reduce 累加器是否允许修改其参数?

在 Java 8 中,Stream 有一个方法 reduce: T reduce(T identity, BinaryOperator accumulator); 累加器运算符是否允许修改它的任何一个参数?我认为不是,因为 JavaDoc 说累加器应该是 NonInterfering,尽管所有示例都谈到修改集合,而不是修改集合的元素. 所以,举个具体的例子,如果我们有 integer ..
发布时间:2022-01-22 10:32:12 Java开发

Java8 Streams - 使用 Stream Distinct 删除重复项

我有一个流,例如: Arrays.stream(new String[]{"matt", "jason", "michael"}); 我想删除以相同字母开头的名称,以便只剩下一个以该字母开头的名称(不管是哪个). 我试图了解 distinct() 方法有效.我在文档中读到它基于对象的“equals"方法.但是,当我尝试包装 String 时,我注意到 equals 方法从未被调用,并且没 ..
发布时间:2022-01-22 10:31:59 Java开发

是什么实现细节让这段代码如此容易失败?

这个问题不是关于 HashMap 不是线程安全的众所周知和记录的事实,而是关于它在 HotSpot 和 JDK 代码上的特定故障模式.我很惊讶这段代码很容易因 NPE 而失败: public static void main(String[] args) {映射m = new HashMap(0, 0.75f);IntStream.range(0, 5).parallel(). ..
发布时间:2022-01-22 10:31:50 Java开发

从java中的二维数组流式传输

我正在尝试从 n 维 int 数组中获取 IntStream.有没有很好的 API 方法来做到这一点?我知道两个流的连接方法. 解决方案 假设您想以行优先方式顺序处理数组数组,这应该可以: int[][] arr = { {1, 2, 3}, {4, 5, 6}, {7, 8, 9} };IntStream 流 = Arrays.stream(arr).flatMapToInt(x -> ..
发布时间:2022-01-22 10:31:22 Java开发

Java 8 流收集集

为了更好地理解新的流 API,我正在尝试转换一些旧代码,但我坚持使用这个. 公共集合asDestSet() {HashMap>map = new HashMap>();//...设置结果 = 新的 HashSet();for (设置 v : map.values()) {结果.addAll(v);}返回结果;} 我似乎无法为其创建有效的收集器: ..
发布时间:2022-01-22 10:30:41 Java开发

展平地图<整数,列表<字符串>>映射<字符串,整数>带流和 lambda

我想展平一个 Map,它将 Integer 键关联到 String 列表,而不会丢失键映射.我很好奇,好像使用 stream 和 lambda 这样做是可能和有用的. 我们从这样的开始: 映射>mapFrom = new HashMap(); 让我们假设 mapFrom 填充在某个地方,看起来像: 1: a,b,c2:d,e,f等等. 我们还假设列表中的值是唯一 ..
发布时间:2022-01-22 10:30:35 Java开发

当 .stream().parallel() 做同样的事情时,为什么 Collection.parallelStream() 存在?

在 Java 8 中,Collection 接口扩展了两个返回 Stream 的方法:返回顺序流的 stream() 和返回顺序流的 parallelStream(),它返回一个可能并行的流.Stream 本身也有一个 parallel() 方法,该方法返回等效的并行流(将当前流变为并行或创建新流). 重复有明显的缺点: 令人困惑.一个问题询问 是否有必要同时调用 paralle ..
发布时间:2022-01-22 10:30:25 Java开发

Java 8 中的空安全集合作为流

我正在寻找可以制作集合流的方法,但它是 null 安全的.如果collection 为null,则返回空流.像这样: Utils.nullSafeStream(collection).filter(...); 我已经创建了自己的方法: 公共静态流nullSafeStream(集合集合){if (collection == null) {返回 Stream.empty();}返回集 ..
发布时间:2022-01-22 10:29:57 Java开发