【发布时间】:2018-05-03 11:24:10
【问题描述】:
我正在尝试在 Java 8 中创建一个函数,该函数将列表作为参数并返回 HashMap 作为结果。
我已经在 Java 7 中做到了,但我想通过使用 Java 8 流来做到这一点:
这是 Java 7 中的代码:
public static HashMap<String, List<Eleve>> getMentions(List<Eleve> liste){
HashMap<String, List<Eleve>> listeMentions = new HashMap<String, List<Eleve>>();
List<Eleve> noMention = new ArrayList<Eleve>();
List<Eleve> mentionAB = new ArrayList<Eleve>();
List<Eleve> mentionB = new ArrayList<Eleve>();
List<Eleve> mentionTB = new ArrayList<Eleve>();
for (Eleve eleve: liste) {
if (eleve.getAverage()>=12 && eleve.getAverage()<14) {mentionAB.add(eleve);}
else if(eleve.getAverage()>=14 && eleve.getAverage()<16) {mentionB.add(eleve);}
else if (eleve.getAverage()>=16) {mentionTB.add(eleve);}
else{noMention.add(eleve);}
}
listeMentions.put("No mention", noMention);
listeMentions.put("Mention AB", mentionAB);
listeMentions.put("Mention B", mentionB);
listeMentions.put("Mention TB", mentionTB);
return listeMentions;
}
我尝试使用collect(Collectors.toMap) 流,但没有得到估计的结果。
【问题讨论】:
标签: java lambda collections java-stream