[英]Map java int stream
I'm learning about streams and I'm trying to map a test score to a letter grade using a stream. 我正在学习流,并且正在尝试使用流将测试成绩映射到字母等级。 I think I'm close but I can't figure out the code to map it.
我想我已经接近了,但是我想不出代码来映射它。 The part that I'm hung up on is the Map at the end of the code.
我挂断的部分是代码末尾的Map。 Here's the code that I have.
这是我的代码。
import java.util.ArrayList;
import java.util.Arrays;
import static java.util.Collections.list;
import java.util.List;
import java.util.Map;
import java.util.TreeMap;
import java.util.function.Function;
import java.util.stream.Collectors;
public class LetterGrades {
public static void main(String[] args) {
List<String> gradeMap = new ArrayList<>();
GradeBook[] grades = {
new GradeBook(90, "A"),
new GradeBook(80, "B"),
new GradeBook(70, "C"),
new GradeBook(60, "D"),
new GradeBook(0, "F")};
List<GradeBook> list = Arrays.asList(grades);
// gradeMap.add("A");
// gradeMap.add("B");
// gradeMap.add("C");
// gradeMap.add("D");
// gradeMap.add("F");
//List<Integer> grades = new ArrayList<Integer>();
// grades.add(94);
// grades.add(85);
// grades.add(91);
// grades.add(100);
// grades.stream()
// .forEach(System.out::println);
Map<String, Integer> grade = list.stream().
collect(Collectors.groupingBy(GradeBook::getLetterGrade,
Collectors.joining(GradeBook::getScore)));
System.out.println(grade);
}
}
You can simply use Collectors.toMap()
: 您可以简单地使用
Collectors.toMap()
:
Map<String, Integer> grade = list.stream().collect(
Collectors.toMap(GradeBook::getLetterGrade, GradeBook::getScore)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.