Ich wollte fragen, wie man die aktuelle Größe eines Arrays in einer Methode ausgibt? Beispielsweise habe ich eine Einkaufsliste, diese umfasst 5 Gegenstände, die ich im Array gespeichert habe. Ich möchte nun eine Methode schreiben, die mir die Anzahl der Gegenstände ausgibt, die ich auf meiner Liste habe, sprich 5.
In meinem Buch habe ich nur gefunden, wie man die Länge eines Arrays ausgibt aber nicht die aktuelle Größe, beziehungsweise die Anzahl der im Array gespeicherten Gegenstände. Ich hoffe jemand kann mir helfen.
Angenommen der Datentyp deines Arrays ist einen Referenzdatentyp, dann wird das Array mit null initialisiert.
Somit kannst du dir eine Counter Variable anlegen und über das Array laufen. In jeder Iteration prüfst du ob das aktuelle Element gleich null ist. Wenn ja dann zählst du nichts. Wenn es nicht null ist dann zählst du deinen Counter eins hoch
Angenommen der Datentyp deines Arrays ist einen Referenzdatentyp, dann wird das Array mit null initialisiert.
Somit kannst du dir eine Counter Variable anlegen und über das Array laufen. In jeder Iteration prüfst du ob das aktuelle Element gleich null ist. Wenn ja dann zählst du nichts. Wenn es nicht null ist dann zählst du deinen Counter eins hoch
public int getNumberOfItems () {
int counter = 0;
for (int i = 0; i < shoppingList.length; i++) {
if (shoppingList != null) {
counter++;
}
}
return counter;
}
Aber irgendwie kommt bei mir kein Wert raus, hab ich noch irgendwas vergessen?
Mein Code bezieht sich hier auf vorhandene Bücher in einer Bibliothek und die Werte werden automatisch vom Programm eingefügt, also brauch ich quasi nur die Schablone erstellen
In der Klasse Bookshelf hast Du ein Array books. Aber diese Variable bekommt nie etwas zugewiesen, daher ist dies immer null und der Zugriff auf das Array ist nicht möglich. Da müsstest Du also erst einmal ein Array erzeugen und zuweisen.
Aber dann bekommst Du immer noch eine NPE, denn in dem Array sind ja keine Bücher. Also ist da im ersten Element null. Und auf null kannst Du setTitle und so nicht aufrufen. Da müsstest Du also erst ein neues Buch hinzufügen.
Dann willst Du in dem Buch ja nicht drei mal den Title setzen sondern Title, Author und isbn.
Und dann willst Du da nicht immer im Feld 0 etwas hinzufügen sondern Du willst es beim ersten freien Element hinzufügen. Das musst Du Dir also auch erst einmal heraus suchen....
Naja wie gesagt, der Code dient nur als Schablone. Werte sollen wir noch gar nicht zuweisen, das macht unser Schulprogramm automatisch (dafür gibt es im Programm extra Klassen, die Werte zuweisen, jedoch von uns nicht einsehbar sind. Beispielsweise Book[] books = new Book[3]; ........--> (und dazu unterschiedliche Bücher samt Autor, Titel usw.), das wird quasi random eingesetzt.
Und wie mach ich das? Tut mir leid, wenn die Fragen dumm rüberkommen, aber ich beschäftige mich erst seit ein paar Wochen mit Java bzw. mit Programmiersprachen generell und mir fehlen noch an einigen Stellen die Basics.