リストをパラメータとして受け取り、その結果としてHashMap
を返す関数をJava 8で作成しようとしています。リストを受け取り、リストHashMapを返すJava 8関数<K, List<V>>
私はすでに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)
ストリームと試みたが、I推定結果を得られなかった。
あなたはまたに2つ目のスニペットを短縮することができます: 'Eから - >のgetGroup(E)'工ass :: getGroup' – Lino
@Linoうん 'へ私はどのクラスにそのメソッドが含まれているかを決定しなかったので、私はそれをしませんでした:) – Eran
それは私がdummynameを考え出した理由です。それは可能であることだけを言いたかった。しかしもちろんあなたのためではない、あなたはそれが可能であることを知っている;) – Lino