[英]Map java int stream
我正在學習流,並且正在嘗試使用流將測試成績映射到字母等級。 我想我已經接近了,但是我想不出代碼來映射它。 我掛斷的部分是代碼末尾的Map。 這是我的代碼。
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);
}
}
您可以簡單地使用Collectors.toMap()
:
Map<String, Integer> grade = list.stream().collect(
Collectors.toMap(GradeBook::getLetterGrade, GradeBook::getScore)
);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.