loeschen von objekten

max514

Bekanntes Mitglied
Hi kann mir irgendjemand sagen warum das nicht funktioniert ?

Main:
Java:
case "L":{
                String nn;
                Scanner NN = new Scanner( System.in );
                System.out.print( "Geben Sie den zu loeschenden Nachname ein: " );  
                nn = NN.nextLine();
                Kartei tmp = new Kartei();
                  tmp.loeschen(nn);
                break;
            }

Kartei:
Java:
public void loeschen(String nn)
    {
          for (int i =0; i<alle.size();i++) {
                  if (alle.get(i).getNachname().equals(nn)) {
                      System.out.println("Loeschen erfolgreich");
                      alle.remove(i);
                    
                  }
                  else {
                  System.out.println("Loeschen fehlgeschlagen");
                
                  }      
      }
          
   }
 
Zuletzt bearbeitet von einem Moderator:

max514

Bekanntes Mitglied
wenn ich einen Kontakt anlege und danach versuch zu loeschen erschein die nachricht mit erfolgreichem loeschen nicht
 

max514

Bekanntes Mitglied
Kartei:

import java.util.Vector;
import java.util.Scanner;
public class Kartei {
Vector<Freunde> alle = new Vector<Freunde> (1000);
static int schluessel = 0;
private static final int test = -1;

public void anlegen() {
Freunde a = null;
String vn, nn;
++schluessel;
Scanner str = new Scanner( System.in );
System.out.println("Geben Sie einen Vornamen ein: ");
vn = str.nextLine();
if(!isAlpha(vn) || vn.length()<3) {
System.err.println("Es dürfen nur Buchstaben verwendet werden und der Vorname "
+ "muss mindestens 3 zeichen besitzen");
anlegen();
}
System.out.print( "Geben Sie einen Nachname eingeben: " );
nn = str.nextLine();
if(!isAlpha(nn) || vn.length()<3) {
System.err.println("Es dürfen nur Buchstaben verwendet werden und der Nachname "
+ "muss mindestens 3 zeichen besitzen");
anlegen();
}
a = new Freunde(vn, nn);
alle.add(a);

}

public int suchen(String key)
{
for(int i =0; i<alle.size(); i++)
{
if(alle.get(i).getNachname().equals(key))
{
return i;
}
else
{
System.out.println("Kontakt nicht gefunden");
return test;
}
}
return 0;

}


public void loeschen(String nn)
{
for (int i =0; i<alle.size();i++) {
if (alle.get(i).getNachname().equals(nn)) {
System.out.println("Loeschen erfolgreich");
alle.remove(i);

}
else {
System.out.println("Loeschen fehlgeschlagen");

}
}

}



public boolean isAlpha(String text) {
for (char c : text.toCharArray()) {
// a - z
if (c >= 'a' && c <= 'z')
continue;
// A - Z
if (c >= 'A' && c <= 'Z')
continue;
// ö, ü, ä, ß
if (c == 'ö' || c == 'ß' || c == 'ä' || c == 'ü')
continue;
return false;
}
return true;
}
}

Main:
import java.util.*;
import javax.xml.bind.helpers.AbstractMarshallerImpl;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
boolean b = true;
do
{
System.out.println("A = Freundesliste anzeigen");
System.out.println("H = Eintrag hinzufuegen");
System.out.println("L = Eintrag loeschen");
System.out.println("F = Eintrag finden");
System.out.println("W = Eintrag aendern");
System.out.println("B = Programm beenden");
System.out.println("Bitte waehlen: ");
String eingabe = sc.next();


switch (eingabe)
{
case "A":{

break;
}
case "H":{
Kartei tmp = new Kartei();
tmp.anlegen();
break;
}
case "L":{
String nn;
Scanner NN = new Scanner( System.in );
System.out.print( "Geben Sie den zu loeschenden Nachname ein: " );
nn = NN.nextLine();
Kartei tmp = new Kartei();
tmp.loeschen(nn);
break;
}
case "B":{
b = false;
break;
}
case "F":{
break;

}
default :
}

}while (b == true);



}
}

so sieht es ganz aus ich komm halt aus c++ und versuch mich erst hieran
 

Robat

Top Contributor
Ich würde mal behaupten, dass du die Personen nicht in die selbe Kartei speicherst. In deinem switch-case erstellst du ja eine neue Kartei
 

max514

Bekanntes Mitglied
ja das dacht ich mir aber wie kann ich auf die methode der Kartei zugreifen ?? oder gibbts die möglichkeit eine methode in der Freunde zu erstellen die dann auf kartei verweist ??
 

mihe7

Top Contributor
Leg doch die Kartei einfach außerhalb des Switches an. Nachtrag: dank der Code-Formatierung habe ich die Schleife übersehen... Also: Leg die Kartei außerhalb der Schleife an.

Wenn Du künftig Code postest, dann bitte so: [code=Java]Dein Code[/code]
 
X

Xyz1

Gast
Bitte komplettes SSC(C)E posten und zwar leserlich und innerhalb Java Tag s!
Ein objekt wird "gelöscht" indem es nicht mehr referenziert wird und daher rufst Du remove() auf....
aber Du musst remove() auch aufrufen.
 

max514

Bekanntes Mitglied
Klasse Freunde:
Java:
public class Freunde {
    private String vorname;
    private String nachname;
 
    public Freunde(String vorname, String nachname)
    {
        this.vorname=vorname;
        this.nachname=nachname;
    }
 
    public Freunde() {
        // TODO Auto-generated constructor stub
    }
    public String getVorname() {return vorname;}
    public String getNachname() {return nachname;}
    public void setVorname(String vorname) {this.vorname = vorname;}
    public void setNachname(String nachname) {this.nachname=nachname;}
}

Java:
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
 
        boolean b = true;
        do
        {
            System.out.println("A = Freundesliste anzeigen");
            System.out.println("H = Eintrag hinzufuegen");
            System.out.println("L = Eintrag loeschen");
            System.out.println("F = Eintrag finden");
            System.out.println("W = Eintrag aendern");
            System.out.println("B = Programm beenden");
            System.out.println("Bitte waehlen: ");
            String eingabe = sc.next();
     
     
            switch (eingabe)
            {
            case "A":{
         
                break;
            }
            case "H":{
         
                break;
                }
            case "L":{
                String nn;
                Scanner NN = new Scanner( System.in );
                System.out.print( "Geben Sie den zu loeschenden Nachname ein: " );
                nn = NN.nextLine();
           
                break;
            }
            case "B":{
                b = false;
                break;
            }
            case "F":{
                break;
         
            }
            default :
            }
     
        }while (b == true);
 
 
 
    }
}

Java:
import java.util.Vector;
import java.util.Scanner;
public class Kartei {
    Vector<Freunde> alle = new Vector<Freunde> (1000);
    Freunde tmp = new Freunde();
    static int schluessel = 0;
    private static final int test = -1;
 
    public void  anlegen() {
 
        String vn, nn;
        ++schluessel;
        Scanner str = new Scanner( System.in );
        System.out.println("Geben Sie einen Vornamen ein: ");
        vn = str.nextLine();
        if(!isAlpha(vn) || vn.length()<3) {
            System.err.println("Es dürfen nur Buchstaben verwendet werden und der Vorname "
                    + "muss mindestens 3 zeichen besitzen");
            anlegen();
        }
        System.out.print( "Geben Sie einen Nachname eingeben: " );
        nn = str.nextLine();
        if(!isAlpha(nn) || vn.length()<3) {
             System.err.println("Es dürfen nur Buchstaben verwendet werden und der Nachname "
                    + "muss mindestens 3 zeichen besitzen");
             anlegen();
         }
        tmp = new Freunde(vn, nn);
        alle.add(tmp);
 
    }
 
    public int suchen(String key)
    {
        for(int i =0; i<alle.size(); i++)
        {
            if(alle.get(i).getNachname().equals(key))
            {
                return i;
            }
            else
            {
                System.out.println("Kontakt nicht gefunden");
                return test;
            }
        }
        return 0;
 
    }
 
 
    public void loeschen(String nn)
    {
          for (int i =0; i<alle.size();i++) {
                  if (alle.get(i).getNachname().equals(nn)) {
                      System.out.println("Loeschen erfolgreich");
                      alle.remove(i);
               
                  }
                  else {
                  System.out.println("Loeschen fehlgeschlagen");
           
                  } 
      }
     
   }
 
 
 
    public boolean isAlpha(String text) {
        for (char c : text.toCharArray()) {
            if (c >= 'a' && c <= 'z')
                continue;
            if (c >= 'A' && c <= 'Z')
                continue;
            if (c == 'ö' || c == 'ß' || c == 'ä' || c == 'ü')
                continue;
            return false;
        }
        return true;
    }
}

Aufgabenstellung
In der Klasse Kartei sollen die Freunde verwaltet werden. Es sollen Methoden zum Hinzufügen, zum Ändern, zum Löschen von Freunde geben. Auch möchte man nach Freunde in der Kartei suchen können (z. B. nach dem Nachnamen oder dem Schlüssel) und die Gesamtanzahl der Freunde, die gespeichert sind, ausgeben können. Berücksichtigen Sie auch mögliche Fehler, die auftreten können und behandeln Sie diese Anwender gerecht.
In der Klasse Freunde werden die Vornamen, Nachname, Geburtsdatum, Telefon, Handy, E-Mail und die Adresse (PLZ, Ort, Strasse) gespeichert. Außerdem benötigen Sie noch eine Variable, welche jedes Objekt „Freund“ eindeutig identifiziert (Schlüssel). Es gibt Methoden zum Anlegen von neuen Freunden, sowie zum Auslesen und zur Änderungen einzelner wesentlicher Attribute. Stellen Sie für diese Problemstellung nur die wirklich wichtigen Methoden zum Auslesen und Ändern der Attribute zur Verfügung. Berücksichtigen Sie auch mögliche Fehler, die auftreten können und behandeln Sie diese anwendergerecht.
In einem Mainprogramm sollen dann beispielhaft verschiedene Freunde eingegeben und in der Kartei angelegt werden. Außerdem soll man das Löschen eines Eintrags und Änderungen an einem Eintrag beispielhaft vornehmen. Am Schluss soll eine Telefonliste aller der Freunde erstellt und ausgegeben werden.
Zur Beschreibung der Klassen sollen UML-Diagramme verwendet werden. Diskutieren Sie auch kritisch die Umsetzung der Fragestellung. Was könnte man hier noch strukturell verbessern?

ich hab halt nur c++ gelernt und weiß nicht wie ich in der main auf die methode loeschen in der Kartei zugreif. Ich weiß zwar das des mit dem new operator geht aber ich leg dann ja jedesmal ne neue kartei an und greif nicht auf den Vector zu
 
Zuletzt bearbeitet:

mihe7

Top Contributor
ich hab halt nur c++ gelernt und weiß nicht wie ich in der main auf die methode loeschen in der Kartei zugreif. Ich weiß zwar das des mit dem new operator geht aber ich leg dann ja jedesmal ne neue kartei an und greif nicht auf den Vector zu
Da Du wiederholt C++ ansprichst: C++ verhält sich zu Java etwa wie ein Jumbo zu einem Sportflugzeug. Davon mal abgesehen sind sich Java und (zumindest altes) C++ bezüglich der OO doch recht ähnlich, bzgl. des Methodenaufrufs ja sogar fast identisch. Gleiches gilt für den new-Operator.

Sprich: das funktioniert in Java nicht anders als in C++ auch.

Danke an alle die sich mit dem problem auseinandergesetzt haben ich habe es aber selbst gelöst
Wenn ich mir die Aufgabenstellung ansehe, dann wage ich zu bezweifeln, dass Dein Code das ist, was Dein Prof sehen will ;)
 

max514

Bekanntes Mitglied
Ja des hab ich auch gemerkt war indem fall auch ne ziemlich dämlich frage als ich dann auf die Lösung gekommen bin =D
Ok inwiefern entspricht das nicht der Aufgabenstellung ?? ich mach n Fernstudium und hab keinen der mir das erklären kann ???
 
Zuletzt bearbeitet:

max514

Bekanntes Mitglied
achso ja des ist auch nur ne testphase ich pass des programm der aufgabenstellung noch an :) ich dachte am grundaufbau ist was falsch :)
 

max514

Bekanntes Mitglied
weißt du eigentlich ob es in java sowas wie in c++ mit setw() gibt ?? das ich die telfonliste Tabelarisch anzeicen kann??
 

Robat

Top Contributor
Tabellen auf der Konsole kann man ganz schön mit String#format oder System.out#printf machen. Beides funktioniert so wie das printf was man aus C kennt.
Java:
String[][] data = {
        {"Spalte 1", "Spalte 2", "Spalte 3"},
        {"Wert 1", "Wert 2", "Wert 3"},
        {"Wert 4", "Wert 5", "Wert 6"}
};
for(String[] row : data) {
    for(String value : row) {
        System.out.printf("%-10s ", value);
    }
    System.out.println();
}
Code:
Ausgabe:
Spalte 1   Spalte 2   Spalte 3   
Wert 1     Wert 2     Wert 3     
Wert 4     Wert 5     Wert 6
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
B OOP Kommunikation zwischen Objekten? Allgemeine Java-Themen 5
Zrebna Wieso sollte man Null-Prüfungen nicht mit Optional-Objekten nutzen? Allgemeine Java-Themen 13
B Sent and Receive Funktionen zwischen Objekten ermöglichen? Allgemeine Java-Themen 8
A Objekt aus anderen Objekten machen Allgemeine Java-Themen 8
PCOmega137 Objekten zufällig erzeugte Namen geben Allgemeine Java-Themen 2
T Speichern von Objekten Allgemeine Java-Themen 2
D Serialisierung und Deserialisierung von Objekten - Frageprogramm Allgemeine Java-Themen 4
M Wie kann man eine void Methode mit Variablen von zwei verschiedenen Objekten ausführen? Allgemeine Java-Themen 15
S Parametrisierte jUnit 5-Tests mit eigenen Datentypen/Klassen-Objekten als Test-Parameter Allgemeine Java-Themen 0
F Best Practice Große Anzahl an Objekten speichern und lesen Allgemeine Java-Themen 19
M Array aus Thread Objekten erstellen Allgemeine Java-Themen 2
K Vergleich von Strings von Objekten Allgemeine Java-Themen 4
B Endlosschleife beim Verteilen von Objekten Allgemeine Java-Themen 4
L Von ArrayList abgeleitete Klasse nur mit bestimmten Objekten füllen Allgemeine Java-Themen 1
D Verwaltung von sehr vielen Objekten Allgemeine Java-Themen 12
G problem: array aus objekten Allgemeine Java-Themen 10
H Liste von Objekten generisch sortieren Allgemeine Java-Themen 0
S Zur Laufzeit Klasse mit einer anzahl von X Objekten erstellen Allgemeine Java-Themen 5
B OOP Auf Zustandsänderungen von Objekten reagieren Allgemeine Java-Themen 2
H Best Practice zu vielen konstanten Objekten? Allgemeine Java-Themen 10
M 3D-Grafik Probleme beim drehen von Objekten Allgemeine Java-Themen 9
A Sinnvolles Software Design bei Eigenschaftsänderungen von Objekten Allgemeine Java-Themen 7
J Java-Implementierung diverser Beziehungen zwischen Klassen bzw. Objekten Allgemeine Java-Themen 2
S Threads Liste mit Objekten in Teillisten zerlegen und abarbeiten Allgemeine Java-Themen 3
P J-Unit vergleich von 2 Objekten merkwürdig Allgemeine Java-Themen 7
Landei Guice - Injection von "zwischendurch" erzeugten Objekten Allgemeine Java-Themen 4
S Sortieren nach Objekten Allgemeine Java-Themen 13
T Liste mit GregorianCalendar-Objekten in List einlesen, mit Collection sortieren und ausgeben Allgemeine Java-Themen 3
D Von mehreren Objekten eine Eigenschaft abfragen Allgemeine Java-Themen 11
G Array mit neuen Objekten der selben Klasse füllen Allgemeine Java-Themen 2
S Eine Collection von Objekten mit LDAP Syntax filtern Allgemeine Java-Themen 5
M Schnittmenge von Objekten Allgemeine Java-Themen 3
N Performates lesen von Objekten aus Dateien Allgemeine Java-Themen 2
hdi Speichergröße von Objekten & Referenzen Allgemeine Java-Themen 8
hdi JTable: Sortierung von Date-Objekten Allgemeine Java-Themen 4
C ArrayList (mit Objekten) sortieren Allgemeine Java-Themen 12
C TreeSet mit Objekten befüllen Allgemeine Java-Themen 12
L Lesen von Objekten aus Datei Allgemeine Java-Themen 17
S Liste mit verschiedenden Objekten Allgemeine Java-Themen 15
I Vector mit Objekten sortieren,Videos mit JMF wiedergeben Allgemeine Java-Themen 6
J ArrayList aus Point-Objekten nach dem x-Wert ordnen Allgemeine Java-Themen 2
T abspeichern und laden von objekten in JFrame Allgemeine Java-Themen 2
G Serialisieren von Objekten : IO Exception beim Schreiben Allgemeine Java-Themen 3
G Kompletten Frame mit allen Objekten resizen Allgemeine Java-Themen 10
G Tagesdifferenz zw. 2 Gregorian Objekten Allgemeine Java-Themen 14
M Endgültiges Löschen von Objekten Allgemeine Java-Themen 7
M Problem mit Objekten Allgemeine Java-Themen 11
B Serialisieren von mehreren Objekten Allgemeine Java-Themen 7
W Threads & Pipes --> Ist eine Übergabe von Objekten mö Allgemeine Java-Themen 7
T casten von Objekten aus einer ArrayList Allgemeine Java-Themen 4
O kommunikation zw. objekten Allgemeine Java-Themen 7
G List mit selbstdefinierten Objekten sortieren Allgemeine Java-Themen 2
T Unabhängigkeit von Variablen/ Objekten. Allgemeine Java-Themen 6
M String aus array mit Objekten suchen Allgemeine Java-Themen 26
F Array von Objekten Allgemeine Java-Themen 2
B Darstellung von Objekten dauern unterschiedlich lang ! Allgemeine Java-Themen 5
G hashtable mit objekten Allgemeine Java-Themen 9
G Probleme mit Clonen von Objekten die JComponents enthalten Allgemeine Java-Themen 3
M Alle möglichen Kombinationen von mehreren Objekten berechnen Allgemeine Java-Themen 6
D OOP-Style bei Objekten Allgemeine Java-Themen 35
H Speicher freigeben klappt nicht bei Image Objekten, warum? Allgemeine Java-Themen 8
m@nu Programm-Models in Static-Objekten speichern Allgemeine Java-Themen 5
T Problem mit Zuweisung von Objekten Allgemeine Java-Themen 5
K Ordner/Dateistruktur in Objekten nachbilden Allgemeine Java-Themen 6
C Uebergabe von Objekten nach anklicken von JCheckBox Allgemeine Java-Themen 5
B Array von Objekten Allgemeine Java-Themen 3
W Mit Date-Objekten arbeiten Allgemeine Java-Themen 10
C Sichbarkeit von Objekten / Methoden in verschiedenen Files Allgemeine Java-Themen 7
S Sortieren Von Objekten Nach Attribut Allgemeine Java-Themen 6
lhein Übergabe von Objekten von Java an C über JNI Allgemeine Java-Themen 5

Ähnliche Java Themen


Oben