当前位置: 首页 > 知识库问答 >
问题:

从Java8 lambda返回相同的对象

周承天
2023-03-14

我有以下代码:

@Test
public void testAverageFromArray() {
    final Double[] dbls = { 1.1, 1.2, 1.3, 1.4, 1.5 };
    final double av = Stream.of(dbls).mapToDouble(d -> d).average().getAsDouble();
    assertEquals(1.3, av, 0);
}

问题:是否可以替换 d -

*我对这个问题的标题不太清楚-如果有问题,请编辑。

谢啦

共有2个答案

芮星海
2023-03-14

在代码中,您正在转换

因此,对于任意类型的< code>T流的转换

请注意,当无论如何都需要转换函数时,方法< code > doublestream . average()不再那么方便,您也可以使用:

final double av = Stream.of(dbls).collect(Collectors.averagingDouble(d -> d));

使用< code >导入静态功能,它变成:

final double av = Stream.of(dbls).collect(averagingDouble(d -> d));

为了完整起见,您甚至可以不使用d来完成此操作-

final double av = Stream.of(dbls).collect(DoubleSummaryStatistics::new,
        DoubleSummaryStatistics::accept, DoubleSummaryStatistics::combine)
    .getAverage();

但是,当然,这不会增加可读性或简洁性。这是< code > summaring double(…)收集器工作的显式形式,但在这种形式中,我们可以去掉< code>mapper函数。

沈巴英
2023-03-14

lambda<code>d-

您始终可以用方法引用<code>替换它。mapToDouble(Double::doubleValue),以清楚地表明它为正在处理的双实例解除了双值绑定。

 类似资料:
  • 问题内容: 这是对该问题的更多甚至更好的描述: 我做一个简单的选择查询。返回列表包含确切的记录/对象数,就好像我在数据库中进行相同的查询一样,但是问题在于所有对象都是相同/相同的。 例如,这是数据库中的结果(我删除了空值): 26801 01-JAN-00 7 31-DEC-99 7 Obere Kirchstr。26 CH 8304 Walliselln 26801 01-JAN-00 2 31

  • 然后mocked repository返回传递给它的内容,我可以轻松地测试它。 有什么想法吗?如何强制mockito返回?

  • 问题内容: 我有以下二维位图: 出于好奇,我想检查一下,如果它将使用整数而不是布尔值,它将占用多少空间。所以我检查了当前大小并得到 104 之后,我修改了 但仍然有 104 然后我决定看看仅用字符串我就能得到多少: ,仍然显示 104 这看起来很奇怪,因为我期望字符串列表列表浪费大量的内存,而不仅仅是布尔值。 显然我缺少有关getsizeof如何计算大小的信息。谁能解释我为什么得到这样的结果。 P

  • 问题内容: 我在Mockito中有这个: 该方法应始终返回一个新实例,但它会返回两次相同的引用。 为什么该方法不返回新值? 问题答案: 该方法将始终返回传递给它的内容。该代码是在调用之前执行的。然后将创建的内容传递给。因此有一个绝对的实例而不是创建机制。 如果需要提供新实例,请使用thenAnswer

  • 问题内容: 我正在阅读Head First Java的书中的一句话: 关键是哈希码可以相同,而不必保证对象相等,因为该方法中使用的“哈希算法” 可能会为多个对象返回相同的值。 为什么该方法可能为不同的对象返回相同的值?这不会引起问题吗? 问题答案: *对对象进行 *散列 意味着“ 找到可以由相同实例一次又一次地再现的良好的描述性值(数字) ”。由于Java的哈希码类型为,因此只能具有不同的值。这就

  • 有一个InfiniteScrollListener,在该侦听器中,在方法中,我计算可见项计数和总计项计数,以检查是否应该加载新项。当totalItemCount和visibleItemCount相同时,会导致无限循环的加载。侦听器与我的另一个或作为父级的侦听器一起工作得很好。我想保持这种结构,因为客户不会接受改变。 我在一个活动中有一个片段,它的布局如下所示