Größe eines Arrays bestimmen

Kawastori

Mitglied
Guten Abend,

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.


LG Karl
 

Kirby.exe

Top Contributor
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 ;)
 

Kawastori

Mitglied
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 ;)

Vielen Dank :) Jetzt hab ich wenigstes eine Idee

Ich hab folgende Methode probiert:

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?
 
K

kneitzel

Gast
Zeig einfach mal den genauen Code - und diesen bitte in Code - Tags posten (</> Knopf über dem Eingabebereich).
 

Kawastori

Mitglied
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


Java:
class Book {
    private String title;
    private String author;
    private String isbn10;

    public Book (String title, String author, String isbn10) {
        this.title = title;
        this.author = author;
        this.isbn10 = isbn10;
    }

    public void setTitle (String title) {
        this.title = title;
    }

    public String getTitle () {
        return title;
    }

    public void setAuthor (String author) {
        this.author = author;
    }

    public String getAuthor () {
        return author;
    }
    public void setIsbn10 (String isbn10) {
        this.isbn10 = isbn10;
    }

    public String getIsbn10 () {
        return isbn10;
    }

}

//-------------------------------------------------------------------------------------------------------------------------

Java:
public class Bookshelf {
    Book[] books;
    int nextFreePos;

    public int getNumberOfBooks () {
        int counter = 0;
        for (int i = 0; i < books.length; i++) {
            if (books[i] != null) {
                counter++;
            }
        }
        return counter;
    }

    public void addAsBook (String title, String author, String isbn10) {   
        books[nextFreePos].setTitle(title);
        books[nextFreePos].setTitle(author);
        books[nextFreePos].setTitle(isbn10);
   }   
}


Mein Ergebnis =


1607448383064.png


3 muss rauskommen, aber mein Programm gibt diesbezüglich nicht aus.
 
K

kneitzel

Gast
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....
 

Kawastori

Mitglied
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.
 
K

kneitzel

Gast
Aber irgend was diesbezüglich scheint nicht zu klappen, denn du bekommst eine NPE.
 

mihe7

Top Contributor
Nebenbei: Du hast eine Method addAsBook. Da könnte man eine Instanzvariable hochzählen und diese einfach in getNumberOfBooks() zurückgeben.
 

Kawastori

Mitglied
Nebenbei: Du hast eine Method addAsBook. Da könnte man eine Instanzvariable hochzählen und diese einfach in getNumberOfBooks() zurückgeben.

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.
 

mihe7

Top Contributor
Java:
public class Bookshelf {
    // ...
    int counter;

    public int getNumberOfBooks () {
        return counter;
    }

    public void addAsBook (String title, String author, String isbn10) {  
        // Dein Code, und wenn erfolgreich hinzugefügt:
        counter++;
    }

EDIT: wobei man die Variable nicht counter sondern sinnvollerweise mit etwas wie numberOfBooks bezeichnen sollte.
 

Kawastori

Mitglied
Java:
public class Bookshelf {
    // ...
    int counter;

    public int getNumberOfBooks () {
        return counter;
    }

    public void addAsBook (String title, String author, String isbn10) { 
        // Dein Code, und wenn erfolgreich hinzugefügt:
        counter++;
    }

EDIT: wobei man die Variable nicht counter sondern sinnvollerweise mit etwas wie numberOfBooks bezeichnen sollte.
Dankenschön, Sie retten mir den Tag :)
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
D Größe der Zahlenkombinationen eines Arrays begrenzen Java Basics - Anfänger-Themen 0
H Erste Schritte Größe eines 2 dimensionalen Arrays ausgeben Java Basics - Anfänger-Themen 6
A Datentypen Größe eines mehrdimensionales Arrays Java Basics - Anfänger-Themen 4
Luk10 Größe eines Arrays ausgeben Java Basics - Anfänger-Themen 4
Dilandau größe eines string arrays? Java Basics - Anfänger-Themen 3
J Größe eines Strings in Pixel Java Basics - Anfänger-Themen 18
M Größe eines Buttons festlegen Java Basics - Anfänger-Themen 4
P Größe eines JButton? Java Basics - Anfänger-Themen 17
G die Größe eines Button bestimmen ? Java Basics - Anfänger-Themen 4
C Probleme bei Ermitteln der Größe eines Components Java Basics - Anfänger-Themen 5
G Größe eines TextField bestimmen Java Basics - Anfänger-Themen 4
T Größe eines Objektes im Speicher Java Basics - Anfänger-Themen 4
T sortierung der eingabe nach größe Java Basics - Anfänger-Themen 5
S Java Client-je nach Heap Size Größe startet Applikation oder nicht Java Basics - Anfänger-Themen 4
M Seltsame Bytecode-Größe Java Basics - Anfänger-Themen 22
J JScrollePane größe anpassen Java Basics - Anfänger-Themen 4
G Bubblesort Array der Größe 10 Java Basics - Anfänger-Themen 1
D Probleme mit JFrame und der Größe Java Basics - Anfänger-Themen 8
O ADT Graph nach größe Abfragen Java Basics - Anfänger-Themen 42
G Benutzereingaben durch Zeilenumbruch trennen und in Array individueller Größe speichern Java Basics - Anfänger-Themen 20
T JLabel hat falsche größe Java Basics - Anfänger-Themen 1
H Swing Button hat falsche Größe Java Basics - Anfänger-Themen 5
D JPanel passt die Größe nicht an Java Basics - Anfänger-Themen 22
E Array-Größe anpassen Java Basics - Anfänger-Themen 1
Z ArrayList direkt feste Größe mitgeben Java Basics - Anfänger-Themen 13
R Verschachtelte Arraylist und deren Größe auslesen Java Basics - Anfänger-Themen 7
V Die die aktuelle Größe zusätzlich in einem Label angezeigt wird Java Basics - Anfänger-Themen 11
J Liste der Größe nach sortieren Java Basics - Anfänger-Themen 2
P Größe der BufferStrategy in der Window-Klasse Java Basics - Anfänger-Themen 5
S String nach Größe sortieren Java Basics - Anfänger-Themen 6
O Größe von Objekten Java Basics - Anfänger-Themen 5
M Feste Größe des JFrames - Problem mit Dimension Java Basics - Anfänger-Themen 6
S 2D-Spiel im Vollbild an größe anpassen? Java Basics - Anfänger-Themen 3
1 Größe einer zirkulären Liste bestimmen .. ? Java Basics - Anfänger-Themen 2
S JSlider Schritt Größe Java Basics - Anfänger-Themen 5
D Ausgabefenster größe festlegen Java Basics - Anfänger-Themen 3
P JTabel größe ändern und button anzeigen Java Basics - Anfänger-Themen 5
L JLabel Icon Größe anpassen Java Basics - Anfänger-Themen 11
S Datentypen und ihre Größe Java Basics - Anfänger-Themen 21
P JFrame Component automatische Größe verhindern Java Basics - Anfänger-Themen 2
L 3 Zahlen einlesen und nach der Größe Sortieren Java Basics - Anfänger-Themen 5
A Bildgröße automatisch auf JLabel Größe konvertieren Java Basics - Anfänger-Themen 9
W Methoden größe zweier tiere vergleichen Java Basics - Anfänger-Themen 15
B JTabbedPane größe der Tabs ändern Java Basics - Anfänger-Themen 6
M Größe einer Datei via. Link ermitteln Java Basics - Anfänger-Themen 9
T Erste Schritte Textfeld übernimmt Größe nicht Java Basics - Anfänger-Themen 11
W JButton in gleiche Größe bringen Java Basics - Anfänger-Themen 4
A Größe von Bild festlegen Java Basics - Anfänger-Themen 3
E Buchstaben nach Größe vergleichen Java Basics - Anfänger-Themen 4
M OOP Methode überschreiben mit String-Paramter unterschiedlicher Größe? Java Basics - Anfänger-Themen 19
RySa Input/Output aktuelle größe des BufferedWriters ? Java Basics - Anfänger-Themen 5
T ArrayIndexOutOfBoundsException - Problem mit Array-Größe Java Basics - Anfänger-Themen 4
L Größe von Ordner wiedergeben Java Basics - Anfänger-Themen 4
J Array Größe über Kommandozeile eingeben Java Basics - Anfänger-Themen 3
K GUI - Größe nicht änderbar Java Basics - Anfänger-Themen 7
B Tabelle, Größe der Komponenten Java Basics - Anfänger-Themen 2
Luk10 Größe von Objekten Java Basics - Anfänger-Themen 4
E Titel und Größe vom JFrame setzen Java Basics - Anfänger-Themen 6
A Bild ändert Größe des Gridbag Layouts Java Basics - Anfänger-Themen 4
M Größe einer Konsole ermitteln Java Basics - Anfänger-Themen 2
D Zylinder/Eigenschaften (auf Größe) vergleichen Java Basics - Anfänger-Themen 16
c_sidi90 Größe von Dateien aus File Array ermitteln Java Basics - Anfänger-Themen 12
N zweidimensionales array größe bestimmen Java Basics - Anfänger-Themen 1
I Schriftart / farbe / größe bei Emailversand ändern Java Basics - Anfänger-Themen 17
K Problem mit Applet Größe Java Basics - Anfänger-Themen 5
B JButton Größe einstellen? Java Basics - Anfänger-Themen 3
T Wie kann ich einem Graph in nem JPanel eine fixe Größe geben? Java Basics - Anfänger-Themen 6
MisterSeven Java Swing - Wie Frame größe festlegen?! Java Basics - Anfänger-Themen 10
M größe JEditorPane Java Basics - Anfänger-Themen 5
radiac Von einem Bild die Größe rausfinden??? Java Basics - Anfänger-Themen 9
J 2Dimensionales Array, Größe durch Eingabe bestimmen Java Basics - Anfänger-Themen 9
S Eclipse Java Applet größe ändern aber wie? Java Basics - Anfänger-Themen 5
M array - größe Java Basics - Anfänger-Themen 8
Z TextArea Größe festlegen Java Basics - Anfänger-Themen 22
K Größe, mehrdimensionales Array Java Basics - Anfänger-Themen 6
B ComboBox Größe ändern Java Basics - Anfänger-Themen 4
C die Klasse File - die größe der Datei anzeigen Java Basics - Anfänger-Themen 12
Q Vector verändert trotz final seine Größe Java Basics - Anfänger-Themen 5
-horn- Array mit nicht fixer Größe möglich? Nachträgliches befüllen Java Basics - Anfänger-Themen 10
C Größe einer Referenz ? Java Basics - Anfänger-Themen 16
G JButton LookAndFeel - Größe ändern Java Basics - Anfänger-Themen 2
D File(jpeg) größe ändern und dann zu einen byte[] Java Basics - Anfänger-Themen 7
F InternalFrame, Anpassung der Größe Java Basics - Anfänger-Themen 10
F Größe von Grafik-Containern verschieben Java Basics - Anfänger-Themen 2
K globales array - größe im Konstruktor Java Basics - Anfänger-Themen 3
N Integer Array der Größe nach ordnen Java Basics - Anfänger-Themen 1
I Swing-Komponenten-Größe im GridBagLayout beschränken Java Basics - Anfänger-Themen 2
G Button Größe anpassen Java Basics - Anfänger-Themen 4
R textfeld größe definieren Java Basics - Anfänger-Themen 2
B Java Array List größe auslesen zur Suchfunktion Java Basics - Anfänger-Themen 5
K Strings der Größe nach ordnen Java Basics - Anfänger-Themen 5
S Auf JButtonBar komponenten ausrichten, größe festlegen? Java Basics - Anfänger-Themen 5
M größe für Applet definieren Java Basics - Anfänger-Themen 4
G JList größe verändert sich Java Basics - Anfänger-Themen 2
G max größe array Java Basics - Anfänger-Themen 10
G Größe von JFrame unveränderbar Java Basics - Anfänger-Themen 7
G Maximale Größe von klasse Java Basics - Anfänger-Themen 7
G Größe von Box festlegen Java Basics - Anfänger-Themen 7
N Größe von Buttons Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben