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

Java 8对象流和

澹台景辉
2023-03-14

假设我有一个实现下面接口的对象列表:

public interface Summable<T> {
    T add(T o1);
}

假设我也有一个类,它能够对这些对象进行求和:

public class Calculator<T extends Summable<T>> {
    public T sum(final List<T> objects) {
        if (null == objects) {
            throw new IllegalArgumentException("Ups, list of objects cannot be null!");
        }
        T resultObject = null;
        for (T object : objects) {
            resultObject = object.add(resultObject);
        }
        return resultObject;
   }
}

我在玩一个自定义收集器,但无法找到一些整洁的解决方案。

共有1个答案

蒋烨然
2023-03-14

你有的是一个减价:

return objects.stream().reduce(T::add).orElse(null);
 类似资料:
  • 我试图理解Java8流。我有两门课: 以及: 字段应指示全天的卡路里总量是否为。该字段与当天的所有条目相同。 我试图从

  • 我有两个包含该类对象的列表: 我想通过学生比较一下那两个列表中的对象。我得比较一下列表然后得到下面的数据 我需要创建一个新列表,其中包含中存在但不在中的 对象 我需要创建一个新列表,其中包含那些对象,这些对象存在于中,但不存在于中 我需要创建一个新列表,其中包含使用java8流出现在两个列表中的对象 我尝试使用下面的代码 查找获得TC的学生(存在于列表1中但不存在于列表2中) 查找新的许可(存在于

  • 假设我有一个Foo对象列表。Foo上有一个属性,我必须使用它从数据源中获取Bar对象。然后我必须将每个bar对象映射回我得到bar的原始Foo对象。 我的尝试如下:

  • 我有两个Coll对象流,我想在实例变量say的基础上找到公共对象。我需要使用Java8流来实现这一点。此外,我需要更新变量,比如说公共元素的乘数为1000。 } 我在写一些东西,比如: 我在这个方法上做错了!!我猜Java8不支持像equals那样带有参数的方法!! 我收到一个编译错误:

  • 这是我的家长课 然后我创建了一个列表 然后我向objList添加了许多父对象。 现在我想根据类中字段的值过滤这些对象。但是我只会动态地得到字段名。我想为此使用流。 这里getAttrib2()有所不同。它可以是getAttrib1()或getAttrib3()。 所以我需要动态函数调用。我们能用谓词实现它吗。不幸的是,我对谓词对象一无所知。请详细解释你的答案,里面有所有的概念。

  • 在计算之前。对列表执行以下操作: 将事务处理按年份分组 然后按方法分组 最后产生的对象应该有平均值、年份和方法的值。