Buonasera,
premetto che non sono ancora esperto e per questo motivo chiedo a voi una mano. Mi sto esercitando sulle Collection e mi sono imbattuto in un risultato che disattende le mie aspettative.
Quando stampo il contenuto della lista students, mi ripete l'informazione contenuta nella lista courses un numero di volte pari alla dimensione della lista students. Esempio se carico la lista students nel modo seguente:
Lista students
Pippo
Pluto
Paperino
e passo le informazioni nella lista courses
Matematica
Storia
Italiano
cioè il caricamento dei corsi dovrebbe essere distribuito per ogni soggetto, cioè 3+3+3.
Invece ho come risultato quando stampa students e courses
Pippo Matematica Matematica Matematica Storia Storia Storia Italiano Italiano
Pluto Matematica Matematica Matematica Storia Storia Storia Italiano Italiano
Paperino Matematica Matematica Matematica Storia Storia Storia Italiano Italiano
Il risultato da me atteso dove essere
Pippo Matematica Storia Italiano
Pluto Matematica Storia Italiano
Paperino Matematica Storia Italiano
Riporto il codice per completezza
Il codice della classe in cui viene caricata la lista students:
students.add(new Student("Mary");
students.add(new Student("Andrea");
students.add(new Student("Giulia");
students.add(new Student("Marco");
Course c1 = new Course("Matematica");
Course c2 = new Course("Storia");
Course c3 = new Course("Italiano");
Ho provato con il for
// for(int i=0; i<students.size();i++)
// {
// if (students.get(i)!=null) Student.enroll(c1);
// }
Ho provato con Iterator
Iterator<Student> iter=students.iterator();
while(iter.hasNext()){
if (iter.next()!=null) Student.enroll(c1,students.indexOf(iter));
}
Classe che gestisce il caricamento della lista courses
Ho provato sia nel modo seguente:
public static void enroll(Course c){
courses.add(c);
}
sia in questo altro modo:
public static void enroll(Course c, int i){
courses.add(i,c);
}
Purtroppo il risulta stampato a video è come indicato sopra.
Per favore qualcuno mi potrebbe dare una mano?
Spero di aver fornito il maggior numero di informazioni e in modo chiaro.
Grazie in anticipo per l'aiuto
premetto che non sono ancora esperto e per questo motivo chiedo a voi una mano. Mi sto esercitando sulle Collection e mi sono imbattuto in un risultato che disattende le mie aspettative.
Quando stampo il contenuto della lista students, mi ripete l'informazione contenuta nella lista courses un numero di volte pari alla dimensione della lista students. Esempio se carico la lista students nel modo seguente:
Lista students
Pippo
Pluto
Paperino
e passo le informazioni nella lista courses
Matematica
Storia
Italiano
cioè il caricamento dei corsi dovrebbe essere distribuito per ogni soggetto, cioè 3+3+3.
Invece ho come risultato quando stampa students e courses
Pippo Matematica Matematica Matematica Storia Storia Storia Italiano Italiano
Pluto Matematica Matematica Matematica Storia Storia Storia Italiano Italiano
Paperino Matematica Matematica Matematica Storia Storia Storia Italiano Italiano
Il risultato da me atteso dove essere
Pippo Matematica Storia Italiano
Pluto Matematica Storia Italiano
Paperino Matematica Storia Italiano
Riporto il codice per completezza
Il codice della classe in cui viene caricata la lista students:
students.add(new Student("Mary");
students.add(new Student("Andrea");
students.add(new Student("Giulia");
students.add(new Student("Marco");
Course c1 = new Course("Matematica");
Course c2 = new Course("Storia");
Course c3 = new Course("Italiano");
Ho provato con il for
// for(int i=0; i<students.size();i++)
// {
// if (students.get(i)!=null) Student.enroll(c1);
// }
Ho provato con Iterator
Iterator<Student> iter=students.iterator();
while(iter.hasNext()){
if (iter.next()!=null) Student.enroll(c1,students.indexOf(iter));
}
Classe che gestisce il caricamento della lista courses
Ho provato sia nel modo seguente:
public static void enroll(Course c){
courses.add(c);
}
sia in questo altro modo:
public static void enroll(Course c, int i){
courses.add(i,c);
}
Purtroppo il risulta stampato a video è come indicato sopra.
Per favore qualcuno mi potrebbe dare una mano?
Spero di aver fornito il maggior numero di informazioni e in modo chiaro.
Grazie in anticipo per l'aiuto