Begriff aus Array List löschen

E

Einheit21

hoffe dies ist der richtige Bereicht - aber da meine Vorlesung an der Uni "Grundlagen des Programmierens" Heißt nehm ich an ich bin hier richtig.
Folgendes:
Wir solln zur hausübung ein Programm schreiben das eine Liste von schrauben verwaltet.
Hab fast alles hinbekommen nur mit dem wieder Löschen der Einträge aus der Liste hab ich Probleme.
Schrauben werden in folgender Form eingegeben:
ADD M12x120 T 0.5
das hab ich gesplittet in:
Befehl: ADD (oder DEL)
Durchmesser: M12 (String)
Länge: 120 (Int)
Schraubenart: T für Torxschraube (String)
Gewindesteigung: 0.5 (Double)

mein Befehl ist jetzt:
Java:
private static ArrayList del(String ein[] ,String ein1[], ArrayList <Schraube> Liste){
       try{
       String a = String.valueOf(ein1[0]);
       int b = Integer.parseInt(ein1[1]);
       doublec = Float.parseFloat(ein[3]);
       char v[] = ein[2].toCharArray();
       switch(v[0]){
           case 'T':{
               Liste.remove("Torxschraube",a, b,"Gewindesteigung: ", c);
               break;
           }
           case 'Z':{
               Liste.remove(new Zylinderkopfschraube ("Zylinderkopfschraube",a, b,"Festigkeitswert: ", c));
               break;
           }
           case 'S':{
               Liste.remove(new Sechskantschraube("Sechskantschraube",a, b,"Gewindelänge: ", c));
               break;
           }
       }
       }
       catch (Exception e2){
           System.out.println("Bitte benützen Sie beim Löschen 'T', 'Z' oder 'S' für die verschiedenen Schrauben!" + e2);
       }

       return Liste;

   }
Wie ihr seht habe ich hier schon zwei verschiedene Arten ausprobiert - mit "new" funktionierts einfach nicht und ohne bekomme ich den fehler:
"cannot find Symbol
Symbol: methode remove(java.lang.String,java.lang.String,int,java.lang.String,double)

double in float zu ändern bringt nix.

Rasche Hilfe wäre nett!
Wenns bis 8:00 nicht beantwortet ist kanns gelöscht werden - dann hatte ich leider schon abgabe ;)
 
Warum du zwei Arrays übergibst ist mir noch nicht so ganz klar geworden.

Deine Lösung für Z und S sind eigentlich richtig, zumindest sofern Sechskantschraube auch von Schraube erbt.
 
die remove-Methode erwartet einen int-Wert als Parameter, nämlich den Positionsindex des zu löschenden Elements. du müsstest also erst die Arraylist nahc dem richtigen Element durchsuchen, um den Index zu ermitteln. Vielleicht wäre es besser, eine Hashtable zu verwenden, und den Eingabestring als key-value zu benutzen. Den solltest du allerdings vorher einheitlich formatieren (überflüssige Leerzeichen entfernen usw.).

PS: Der Rat kommt natürlich etwas zu spät, aber vielleicht hilft er dir, künftige Fehler zu vermeiden.
 
Zurück