-
-
-
witam. mam takie małe pytanie odnośnie kursu z algorytmów i struktur danych, takie zadanie:
jest jakaś tam tablica ze studentami przetwarzana iteracyjnie i trzeba umożliwić na niej operacje dopisania studenta - no i mam taką małą metodę jednak nie wiem w czym tkwi błąd...
kod:
Kod: |
//public GrupaStudentow{
//...
public void dopisanieStudenta(IteratorFiltrujacy itab, int nr, String nazwisko, String imie, double ocena)
{
int licznik=0;
for(itab.first(); !itab.isDone(); itab.next())
{
Student st = (Student)itab.current();
licznik++;
}
//tworze nową tablice z kopią pierwszej tablicy i nowy obiekt student w ostatniej komórce
//nowej tablicy obiektów
Student s2[] = new Student[licznik+1];//nowa tabela licznik+1-elementowa
for(int i=0; i<licznik; i++)
s2[i]=s[i];
s2[licznik]=new Student(int nr, String nazwisko, String imie, double ocena);//
//tutaj kompilator zgłasza błąd
}
//public void main()...
}
|
d41d8cd98f00b204e9800998ecf8427e
-
-
-
nowa tablica ma rozmiar taki sam jak stara. Licznik nie pokazuje rozmiaru starej tablicy tylko ilość jej elementów. Utwórz nową tablice nie poprzez new int[licznik+1] tylko przez new int[s.length+1]. Swoją drogą, jeśli ta metoda ma tylko dodawać nowego studenta, to po co jest ta pierwsza pętla? bo chyba nie po to, żeby ustawić licznik?
Ostatnio zmieniony przez Lesmian 2010-05-13, 19:15, w całości zmieniany 1 raz d41d8cd98f00b204e9800998ecf8427e
-
-
-
Jeżeli ten iterator jest rzeczywiście filtrujący, to znaczy, że może po drodze pominąć kilka elementów, czyli drugą tablicę tworzysz zbyt małą, bo licznik nie zlicza wszystkich elementów.
d41d8cd98f00b204e9800998ecf8427e
-
-
-
dzięki Panowie, problem rozwiązany
PS.
nowa tablica ma rozmiar taki sam jak stara+1. Licznik pokazuje rozmiar starej tablicy czyli ilość jej elementów.
PS 2.
akurat w tym przypadku iterator filtrujący bierze pod uwagę wszystkich studentów
d41d8cd98f00b204e9800998ecf8427e
Powered by phpBB modified by Przemo © 2003 phpBB Group. Then, after many years modified again, this time by Piotrek © 2014 Strona wygenerowana w 17,1ms. Zapytań do SQL: 14
|