class Student{
Map<String,Integer> subjectMarks;
String name;
public Student(Map<String,Integer> subject, String name) {
super();
this.subjectMarks = subject;
this.name = name;
}
public Map<String,Integer> getSubjectMarks() {
return subjectMarks;
}
public void setSubjectMarks(Map<String,Integer> subject) {
this.subjectMarks = subject;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
ArrayList<Student> arr = new ArrayList<Student>();
Map m1 = new HashedMap();
m1.put("Maths",40);
m1.put("Science",50);
Map m2 = new HashedMap();
m2.put("Maths",60);
m2.put("Science",20);
arr.add(new Student(m1, "RAJ"));
arr.add(new Student(m2, "AMIT"));
不要将自己局限于Java8中的流的概念,在那里您必须将流的结果直接处理到下一个流中,诸如此类...效率可能不是最好的,但考虑嵌套循环。
开始思考你有什么:每个学生
都有几个分数。您希望找到每个学生
的这些分数的平均值。您可以将问题简化为首先考虑如何获得学生
的平均值。
double average = student.getSubjectMarks().values().stream()
.mapToInt(Integer::valueOf).average().orElse(0.0);
即使您的示例只显示整数,平均值也可以是浮点数。
Map<String, Double> studentAverages = new HashMap<>();
arr.forEach(student -> {
double average = student.getSubjectMarks().values().stream()
.mapToInt(Integer::valueOf).average().orElse(0.0);
studentAverages.put(student.getName(), average);
});
studentAverages.values().stream().mapToDouble(Double::doubleValue).max();
我想用Java8lambda表达式在java列表中找到max值,所以,我有一个类叫TicketMaster,项表是TicketMasterLog,在TicketMasterLog类中我有StatusMaster类的statusId引用列,所以这里我想在TicketMasterLog列表中找到max statusId,下面我给出我的代码请参考 而TicketMasterItem表是 因此,在列表中,
我想采取以下方法: 并使用Streams api更新它。这是我到目前为止得到的: 有没有办法在不流式传输两次(第二次获得计数)的情况下做到这一点?
问题内容: 我无法获得熊猫列的平均值或均值。有一个数据框。我在下面尝试的任何事情都没有给我该列的平均值 以下返回几个值,而不是一个: 这样: 问题答案: 如果您只想要列的均值,请选择列(这是一个系列),然后调用:
问题内容: 我想使用java 8流方法从列表中获取最大值。 结构如下: 我读取了一个csv文件,并将每一行的数据存储在一个单独的type对象中。 所有这些对象都存储在一个名为 所有对象都有一个字段: a 包含2个字段:和 public class Round{ private List hits; } public class Hits{ private int numberOfGames; pr
问题内容: 我试图显示最高平均工资;但是,我似乎无法使其正常工作。 我可以得到要显示的平均薪水清单: 但是,当我尝试显示具有以下项的最大平均薪水列表时: 它没有运行。我收到“无效标识符”错误。如何使用每个工人的平均工资来找到每个工人的最高平均工资? 谢谢。 问题答案: 由聚合函数(例如avg)产生的列通常获得任意名称。只需为其使用别名,然后在其上进行选择:
我正在学习java Stream,并且很难解决下面的问题。我卡住的原因是因为我对处理没有任何想法。 通过执行,我偶然发现了一个“count”的解决方案,但除此之外,我无法继续下去。请帮助我如何处理这些问题,并告诉我在这种情况下工作的原因。到目前为止,我已经尝试了我所学到的一切。