【发布时间】:2020-12-19 00:00:22
【问题描述】:
所以我有一辆具有大小和长度变量的类车。 我创建了一个用于存储汽车对象的数组列表。 我想使用 java 流使用 lambda 表达式按大小过滤列表,然后只计算每辆车长度的平均值。 因此,在下面的代码中,我想获得尺寸大于 10 但小于 30 的汽车的平均长度。
我看过其他关于如何平均整数数组列表等的帖子,但这是一个包含整数的对象列表 我无法得到任何输出,任何建议都非常感谢。
import java.util.ArrayList;
import java.util.Arrays;
import java.util.stream.Collectors;
import java.util.stream.Stream;
import java.util.List;
public class Car {
int size;
int length;
public Car (int s, int l) {
size = s;
length = l;
}
public int getSize() {
return size;
}
public int getLength() {
return length;
}
public static void main(String[]args) {
ArrayList<Car> list = new ArrayList<Car>();
Car t1 = new Car(1,5);
Car t2 = new Car(8,6);
Car t3 = new Car(12,9);
Car t4 = new Car(25,12);
list.add(t1);
list.add(t2);
list.add(t3);
list.add(t4);
int info = list.stream()
.filter(l -> l.getSize() > 10 && l.getSize() <30 )
.average(Car.getLength);
}
}
【问题讨论】:
-
您希望代码的哪一部分
print什么? -
我建议你调查
Stream#mapToInt()——这应该会让你找到ints的集合。 -
好的,谢谢吉姆检查一下
-
PM 77-1 我希望 .average 打印输出
标签: java lambda java-stream