Esse é meu código:
[code]package cha06;
import java.util.*;
public class Student{
String name;
int studentID;
public Student(String name, int id){
this.name = name;
studentID = id;
}
public int getStdID(){
return this.studentID;
}
}[/code]
[code]package cha06;
class Grades{
int studentID;
int grade;
public Grades(int grade, int id){
this.grade = grade;
studentID = id;
}
public int getGradeID(){
return this.studentID;
}
public int getGrade(){
return this.grade;
}
}[/code]
[code]package cha06;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import cha06.Student;
public class Files {
public static void main(String[] args){
List<Student> s = new ArrayList();
List<Grades> g = new ArrayList();
Map<Student,List>studentGrades = new HashMap();
//Map must be: {Fred =[10, 2], Martha = [4, 8], John[3, 7], Paul =[6, 4]}
Student s1 = new Student("Fred", 5);
Student s2 = new Student("Martha", 3);
Student s3 = new Student("John", 7);
Student s4 = new Student("Paul", 8);
s.add(s1);
s.add(s2);
s.add(s3);
s.add(s4);
g.add(new Grades(10, 5));
g.add(new Grades(2, 5));
g.add(new Grades(4, 3));
g.add(new Grades(3, 7));
g.add(new Grades(7, 7));
g.add(new Grades(6, 8));
g.add(new Grades(8, 3));
g.add(new Grades(4, 8));
List gradesToStudent = new ArrayList();
//This is where im struggling
for(int i = 0 ; i<s.size();i++){
for(int j = 0; j<s.size();j++){
Grades grades = g.get(i);
Student student = s.get(j);
if(student.getStdID() == grades.getGradeID()){
gradesToStudent.add(grades.getGrade());
studentGrades.put(student, gradesToStudent);
}
}
}
System.out.println(studentGrades.toString());
}
}[/code]
Oque eu quero fazer é que o meu Mapa tenha como Key o nome do student e como valores as notas que tem o mesmo studentID que esse nome
Meu loop ai em baixo tá resultando em um mapa, mas não leva em conta as ids:
Era pra ser: {Fred =[10, 2], Martha[4, 8] etc
Mas meu loop resulta em Fred =[10,2,4,7]
Onde está meu erro?