Array-Programm

F

flower555

Neues Mitglied
Ich soll ein Notizzettelprogramm erstellen, dass folgende Eigenschaften haben soll:
Aufgabenstellung
In dieser Aufgabe soll ein Teil eines Notizzettel-Programms gestaltet werden. Konkret sollen Sie eine Klasse entwerfen, die die Verwaltung der Liste der Notizenbeinhaltet.

Spezifikation
Ihre Klasse soll dabei die Liste der Notizen speichern, und verschiedene Informationen darüber ermitteln. Gehen Sie dazu wie folgt vor:

  • Erstellen Sie in der gegebenen Datei eine neue öffentliche Klasse NotizAnzeige.
  • Ergänzen Sie die Klasse um ein privates Feld, dass ein Array der Größe 10 mit Strings speichert. Dieses Feld soll die Liste der Notizen (jeder Stringrepräsentiert eine Notiz) repräsentieren.
  • Fügen Sie weiterhin ein Feld hinzu, dass speichert, wieviele Einträge des Arrays bereits befüllt sind.
  • Implementieren Sie die Methode speichereNotiz in der Klasse NotizAnzeige, die einen String als Argument erhält.
    • Sind bereits 10 oder mehr Notizen vorhanden, soll die neue Notiz nicht gespeichert werden.
    • Ansonsten soll sie in die erste, freie Position des Arrays eingefügt werden. Achten Sie darauf, sowohl das Array als auch das Feld, das die Anzahl Einträge speichert, zu verändern!
  • Implementieren Sie die Methode zeigeNotizen in der Klasse NotizAnzeige, die die Liste der Notizen anzeigt. Sie soll die Notizen in der gespeicherten Reihenfolge, mit je einem Zeilenumbruch nach jeder Notiz, auf der Console ausgeben. Nutzen Sie dafür System.out.println().

  • Implementieren Sie die Methode loescheAlle in der Klasse NotizAnzeige, die alle Notizen löscht. Setzen Sie dazu z.B. den Anzahlzähler auf 0 zurück.

  • Ergänzen Sie die Klasse NotizAnzeige um die folgenen Methoden, die die Anzeige der Notizen vereinfachen:
    • int getAnzahl()ermittelt die Anzahl der gespeicherten Notizen und gibt sie zurück.
    • int getLaenge(int i)ermittelt die Länge der Notiz an Stelle i (bei 0 beginnend), also die Anzahl Zeichen der Notiz. Nutzen Sie dafür die Methode lengthder Klasse String.
    • boolean istSortiert(int i)prüft, ob die Notiz an Stelle iweniger Zeichen als die Notiz an Stelle i+1 hat. Es kann sinnvoll sein, dafür die vorige Methode getLaenge zu nutzen.
    • boolean alleSortiert()prüft für alle Notizen außer der letzten, ob sie weniger Zeichen als die folgende Notiz hat. Sie gibt also genau dann truezurück, wenn istSortiert()für die Notizen an Stellen 0 bis getAnzahl() - 1true ist.
Hinweise zur Bearbeitung
  • Ihr Programm brauch keine main-Methode enthalten! Die VPL-Aufgabe ruft direkt Ihre neu definierte Klasse auf.
  • Um das Element eines Arrays mit dem Namen arr an Stelle n zu erhalten, schreiben Sie arr[n].
  • Verwenden Sie für Ausgaben die Anweisung System.out.println(...);.
  • Speichern () Sie Ihre Lösung, und reichen Sie sie zur Bewertung ein ( 0).
Leider kommt es bei mir zu einer Null-Pointer Exception, die ich nicht beheben kann. Vielen Dank

Java:
  public class NotizAnzeige {
    
     private String[] ListeNotizen = new String[10];
    
     public int AnzahlEintraege ; //evt array
    
    
    
      public String speichereNotiz(String a){
        
        
          if ( AnzahlEintraege == 10){ //evt .elnth
              return null;
            
          } else{
              boolean saved = false;
              for (int i=0; i<ListeNotizen.length; i++) {
      
                  if (ListeNotizen[I] == "0"){ // evt auch null
                 
                      ListeNotizen[I]=a;
                      saved = true;
                     break;
                  } 
              }return a;
             
             
             
            } 
       }
         
          public String[] zeigeNotizen(){
          for(int i=0; i<= ListeNotizen.length-1;++i){
              System.out.println(ListeNotizen[I]);
          }return null;
          }
         
          public String[] loescheAlle(){
             AnzahlEintraege=0;
             
             
          return null;
          }
         public int getLaenge(int i){
           if(ListeNotizen[I].length() !=0){
             return ListeNotizen[I].length();
           } else return 0;
         }
         
         public int getAnzahl(){
            return AnzahlEintraege;  //evt .length
         } 
         
         
         
          public boolean istSortiert(int i){
             
                  if(ListeNotizen[I].length()<ListeNotizen[i+1].length()){
           
                 
                     return true; 
                  }else {
                     return false;
                  }
         }  
         
          public boolean alleSortiert() {
              for(int i=0; i< ListeNotizen.length-1; ++i){
                  // for (int j = i+1; j < ListeNotizen.length; j++){
                      if(ListeNotizen[I].length()<ListeNotizen[i+1].length()){
                      return true;
                      }     else {
                            return false;
                            }
                //  } 
              }return true;
          }
     
     
     
 
     
     
     
     
  }
[/I][/I][/I][/I][/I][/I][/I]
 
Zuletzt bearbeitet:
Robat

Robat

Top Contributor
Poste dein Code nächstes mal bitte in Code-Tags [code=Java]Your Code[/code] .. so wie du es jetzt hast verschluckt das Forum alle [i] und macht den Text kursiv.
An welcher Stelle kommt die NullPointerException denn?
Java:
public String[] zeigeNotizen() {.. }
Warum sollte diese Methode in String[] zurückgeben? In der Aufgabe steht davon nichts.
 
S

Senftube

Aktives Mitglied
null ist quasi "nicht vorhanderer, nicht definierter Speicher" und was ganz anderes als "0" oder "".
if (ListeNotizen == "0")
Damit greift zu auf einen null pointer zu, wenn die notiz noch nicht existiert und prüfts ob dort der
(noch nicht existierende string "0" ist.

Stell dir vor das bei private String[] listeNotizen = new String[10];
folgendes automatisch passiert: for (int i=0i< 10;i++) listeNotizen = null

PS: Methodennamen immer mit kleinbuchstaben beginnen lassen nur Klassennamen beginnen mit Grossbuchstaben

Hier die Lösung (nicht getestet, versuch das zu verstehen, nicht einfach abschreiben :)):
Java:
public class NotizAnzeige 
{
     private String[] listeNotizen = new String[10]; // die elemente sind erstmnal alle null
     private int anzahlEintraege ; //
   
   
   
 /**
 * @param a Note to be stred in a free array element
 * @return null if a cannot be stored
 */
public String speichereNotiz(String a)
 {     
      if (anzahlEintraege == 10) //evt .elnth
          return null;
       
       
       for (int i=0; i<listeNotizen.length; i++)
       {
           if (listeNotizen[i] == null) // evt auch null ist was ganz anderes als "0"
           {
              listeNotizen[i]=a;
              anzahlEintraege++;
              return a;
           }
      }
      return null;
} // end of speichereNotiz
         
public void zeigeNotizen()
{
  for(String s : listeNotizen)  System.out.println(s);
}
         
public void loescheAlle()
{
   for (int i=0;i < 10;i++) listeNotizen[i] = null;
     anzahlEintraege=0;
} //--- end of  loescheAlle()       
         

public int getLaenge(int i)
{
   if (i >= 0 && i < 10)
    { if (listeNotizen[i] != null) return listeNotizen[i].length();
    }
   return 0;
} //--- end of getLaenge()       
         
public int getAnzahl()   { return anzahlEintraege;  }
         
         
         
public boolean istSortiert(int i)
{
     if (i < 0 || i >= 9) return false; // 9 weil man ja auf das 9.auch zugreifen muss
     
     int len1=0,len2=0;
     if (listeNotizen[i] != null) len1 = listeNotizen[i].length();
     if (listeNotizen[i+1] != null) len2 = listeNotizen[i+1].length();
     if (len1 < len2) return true;
     return false;
} //---- end of istSortiert()
         
public boolean alleSortiert()
{
      for(int i=0;i < getAnzahl()-1;i++)
      {
         if (listeNotizen[i] == null) continue;
         if (istSortiert(i) == false) return false;
      }
      return true;
}
[/java]

} //------------------- end of class
 
MoxxiManagarm

MoxxiManagarm

Top Contributor
Dein Array hat ja nicht zu jedem Zeitpunkt einen String an jeder Position. Entweder du änderst dein Array so, dass leere Notizen Leerstrings sind, oder du überprüfst den Inhalt deiner ArrayPosition auf null bevor du versuchst die Länge eines null Objektes abzufragen.
 
S

Senftube

Aktives Mitglied
...es solte heissen:

folgendes automatisch passiert: for (int i=0;i< 10;i++) listeNotizen = null
 
S

Senftube

Aktives Mitglied
Sorry @flower555.. schon wieder falsch ....es solte heissen:

folgendes automatisch passiert:
Java:
for (int i=0;i< 10;i++) listeNotizen[I][I][i] = null;
[/I][/I]
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
D Warum gibt mir das Programm nicht den Array invertiert an ? Java Basics - Anfänger-Themen 1
N Array, lineare Suche, binäre Suche, Programm bleibt unerwartet stehen... Java Basics - Anfänger-Themen 6
L Problem mit Array Programm Java Basics - Anfänger-Themen 2
M globales Array erst mittem im Programm erstellen Java Basics - Anfänger-Themen 14
J Programm mit Array Java Basics - Anfänger-Themen 5
L Erste Schritte Fehlermeldung bei Array-Programm Java Basics - Anfänger-Themen 4
V Per Array Programm öffnen Java Basics - Anfänger-Themen 32
T Frage zu einem kleinen programm mit array's Java Basics - Anfänger-Themen 8
G Array Rückgabe aus Programm Java Basics - Anfänger-Themen 6
JD_1998 Array-Position aus einer Methode in einer anderen ausgeben (Kurze Frage) Java Basics - Anfänger-Themen 2
JD_1998 Random Array sortieren mit Hilfe einer Methode Java Basics - Anfänger-Themen 4
M Objekte in Array speichern und ausgeben Java Basics - Anfänger-Themen 17
C Array-Werte werden gemischt, ohne Logik Java Basics - Anfänger-Themen 2
A eine neue normale String-Array von einer String-Array, die in for schleife ist, schaffen Java Basics - Anfänger-Themen 3
A keine Ergebnisse - String nummer in array nummer converting Java Basics - Anfänger-Themen 1
Z Char Array an zufälligen stellen mit einem "x" füllen. Java Basics - Anfänger-Themen 4
P JSON-Array auf Excel-Spalten verteilen? Java Basics - Anfänger-Themen 5
V Array aus Klasse um vererbte Elemente erweitern Java Basics - Anfänger-Themen 3
J Array über Getter erlangen Java Basics - Anfänger-Themen 34
K Übergabe von Werten (zweidimensionales Array) aus einer Methode an zweidimensionales Array in main() Java Basics - Anfänger-Themen 3
T Array füllen Java Basics - Anfänger-Themen 11
P Was genau bringt mir es ein Array in eine Liste zu bringen Java Basics - Anfänger-Themen 3
S Auf Array aus Objekten zugreifen? Java Basics - Anfänger-Themen 1
G Variablen Array Länge über den Konstruktor definieren Java Basics - Anfänger-Themen 4
A Speicherbereich von Array nicht zusammenhängend? Java Basics - Anfänger-Themen 8
S Java Array Probleme Java Basics - Anfänger-Themen 3
S Java Array Problem... Java Basics - Anfänger-Themen 2
C 2dimensionales array, Lagerverwaltung Java Basics - Anfänger-Themen 64
P Verschachtelte Array Liste Java Basics - Anfänger-Themen 2
P Performance Array und Liste Java Basics - Anfänger-Themen 13
M Array Summe bestimmen? Java Basics - Anfänger-Themen 14
parrot Array Übung Java Basics - Anfänger-Themen 25
parrot Array: Methode fügeHinzu Java Basics - Anfänger-Themen 13
parrot Array Java Basics - Anfänger-Themen 4
L 2 Dimensional Array werte überschreiben Java Basics - Anfänger-Themen 1
A char array wird überschrieben Java Basics - Anfänger-Themen 6
L Zufälliges 2d array befüllen Java Basics - Anfänger-Themen 27
L x und y Koordinaten in ein Array schreiben Java Basics - Anfänger-Themen 7
U Dreiecks-Matrix mit Array Java Basics - Anfänger-Themen 3
I Java zweidimensionales array befüllen mit for-schleife Java Basics - Anfänger-Themen 2
P Enums in Array abspeichern Java Basics - Anfänger-Themen 4
J Array Speicherplatz berechnen Java Basics - Anfänger-Themen 35
L Iterieren durch eine ArrayList. Integer Array wird übergeben Java Basics - Anfänger-Themen 17
Z Matrix Klasse mit Mehrdimensionalen Array (Addition, Multiplikation, to String) Java Basics - Anfänger-Themen 57
Z Methoden Array horizontal spiegeln Java Basics - Anfänger-Themen 19
K Array alle Werte aufsummieren und ausgeben Java Basics - Anfänger-Themen 6
J zweidimensionales Array Java Basics - Anfänger-Themen 1
A Array Elemente extrahieren ! Java Basics - Anfänger-Themen 4
M Quiz in Java programmieren mit Array Java Basics - Anfänger-Themen 8
A Array aufaddieren ! Java Basics - Anfänger-Themen 5
F Auto String mit Array Name aus Datei... oder so ähnlich Java Basics - Anfänger-Themen 4
H Ein gegebenes Int Array zu Zwei Arrays zurück geben Java Basics - Anfänger-Themen 6
J Elemente in einem 2D-Array summieren Java Basics - Anfänger-Themen 6
J String aus einem Array entfernen Java Basics - Anfänger-Themen 10
J Array differenzieren Java Basics - Anfänger-Themen 2
M Rekursive Prüfung ob ein Array sortiert ist... Java Basics - Anfänger-Themen 4
J Methoden set Methode array Java Basics - Anfänger-Themen 2
I Array übernimmt immer den letzten Input. Java Basics - Anfänger-Themen 14
E 2D Array - char durch die Matrix "wandern" lassen Java Basics - Anfänger-Themen 7
Kirby_Sike Anzahl vorkommender Elemente im Array zählen Java Basics - Anfänger-Themen 9
A Array problem Java Basics - Anfänger-Themen 16
NeoLexx Variable für Array wird nicht korrekt übergeben Java Basics - Anfänger-Themen 45
F Integerzahl als Array halten Java Basics - Anfänger-Themen 4
1 Array nimmt falschen Wert auf! Java Basics - Anfänger-Themen 2
J Neue Werte in ein Array hinzugeben Java Basics - Anfänger-Themen 8
I Array funktioniert nicht. Java Basics - Anfänger-Themen 2
J String Array zu Map<Character, List<Character>> mit Streams Java Basics - Anfänger-Themen 1
L Wie frage ich ab, ob in einem Array, Werte doppelt vorkommen? Java Basics - Anfänger-Themen 4
C 2-Dimensionales Array in Eindimensionales Array Java Basics - Anfänger-Themen 1
H Frage zum 2d Array Java Basics - Anfänger-Themen 1
L Array sortieren Java Basics - Anfänger-Themen 4
Kirby_Sike Fehlende Int Werte aus Array mit streams finden Java Basics - Anfänger-Themen 19
Ellachen55 Wie nach häufigste Werte im Array suchen? Java Basics - Anfänger-Themen 2
V Array auf eine Zahl durchsuchen Java Basics - Anfänger-Themen 15
M Bubblesort ohne Array Java Basics - Anfänger-Themen 30
B Array Redundanz Java Basics - Anfänger-Themen 1
Kirby_Sike Array Replacing Java Basics - Anfänger-Themen 3
J Array vertauschen ohne ein neues anzulegen?! Java Basics - Anfänger-Themen 10
P Arraylist zu einem Array bringen mit Verschachtelung Java Basics - Anfänger-Themen 11
S Nutzereingabe splitten und in string array wieder ausgeben. Java Basics - Anfänger-Themen 1
L Java Int-Array, Zahlen sortieren Java Basics - Anfänger-Themen 8
M Auf einen Array innerhalb eines Objekts zugreifen Java Basics - Anfänger-Themen 5
H Array-Sortierer Java Basics - Anfänger-Themen 1
F Array Java Basics - Anfänger-Themen 3
Kirby_Sike ArrayOutOfBoundsException bei boolean Array Java Basics - Anfänger-Themen 19
F Zwei Dimensionles Array Java Basics - Anfänger-Themen 21
Kirby_Sike Multidimensionales Array zuschneiden Java Basics - Anfänger-Themen 23
M Ist es möglich, das größte und zweitgrößte element in einem Array mit nur einer Schleife ausfindig zu machen ? Java Basics - Anfänger-Themen 19
B Von Array nur eine bestimmte Anzahl bekommen Java Basics - Anfänger-Themen 3
D NullPointerException im Array Java Basics - Anfänger-Themen 4
S 2D Array Matrizen Java Basics - Anfänger-Themen 7
W OOP Warenlager mit Array(Konstruktor, Methoden) Java Basics - Anfänger-Themen 39
I Methoden char Array Aufgabe (bitte hierbei um Hilfe) Java Basics - Anfänger-Themen 3
A Array richtig füllen Java Basics - Anfänger-Themen 2
H Array Slot frei machen Java Basics - Anfänger-Themen 3
H Array Slot frei machen Java Basics - Anfänger-Themen 4
H Objekt aus einem Array löschen Java Basics - Anfänger-Themen 1
H Objekt im Array speichern Java Basics - Anfänger-Themen 2
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
X Array auf Leerstellen prüfen Java Basics - Anfänger-Themen 1

Ähnliche Java Themen

Anzeige

Neue Themen


Oben