an bestimmter stelle löschen / einfügen

  • Themenstarter Themenstarter spot
  • Beginndatum Beginndatum
S

spot

Hallo,

ich sitze jetzt seit Tagen an einer Aufgabe und kriege sie einfach nicht gelöst, wäre klasse wenn ich hier ein bisschen Hilfe finden würde :)

Aufgabe:

2 Klassen, A und B.
Die Klasse B verwaltet Objekte der Klasse A.

Über B kann man im Laufzeitsfenster Objekte eingeben und dann ausgeben lassen.
Klappt auch alles so weit.
Nun mein Problem:

Es sollen 2 Methoden zu B hinzugefügt werden, eine zum löschen eines Objektes an einer bestimmten Stelle, eine zum hinzufügen an einer bestimmten Stelle.

Ich tüftel die ganze Zeit an bt.add(1,"m"); rum, weiß aber nicht, wie es damit klappen soll.
die 1 soll die Stelle sein (aber über die Tastatur einzugeben), "m" das Objekt, welches aus 5 eingaben (Nummer, anzahl,....) besteht.

Hilfe wäre klasse ! :)

gruß
 
Hallo,

bin ziemlicher Anfänger. Von Collections habe ich noch nie was gehört.
Meine Dateien:

Code:
import java.io.*;

public class Bauteil
        {
    String bezeichnung;
    int inhalt;
    String bestellnummer;
    String Gewinde;
    double Preis;
    String Bestellername;



    public void gebeDatenEin()
    {
        BufferedReader ein=new BufferedReader(new InputStreamReader(System.in));
    try
      {
      System.out.print("Bezeichnung:   ");
      this.bezeichnung=ein.readLine();
      System.out.print("Inhalt:        ");
      this.inhalt=Integer.valueOf(ein.readLine()).intValue();
      System.out.print("Bestellnummer: ");
      this.bestellnummer=ein.readLine();
      System.out.print("Gewinde:       ");
      this.Gewinde=ein.readLine();
      System.out.print("Preis:         ");
      this.Preis=Double.valueOf(ein.readLine()).doubleValue();
      System.out.print("Besteller:     ");
      this.Bestellername=ein.readLine();

              }
    catch (IOException ioe)
    {
        System.out.println(ioe.toString());
    }
    }

   public Bauteil()
   {gebeDatenEin();
   }

public void gebeaufBilschirmAus()
{
    System.out.println("Bezeichnung:         "+this.bezeichnung);
    System.out.println("Inhalt:              "+this.inhalt);
    System.out.println("Bestellnummer:       "+this.bestellnummer);
    System.out.println("Gewinde:             "+this.Gewinde);
    System.out.println("Preis:               "+this.Preis);
    System.out.println("Besteller:           "+this.Bestellername);
}
public static void main(String[] args)
{
    Bauteil bt=new Bauteil();
    System.out.println("\nBauteil");
    bt.gebeaufBilschirmAus();
}
}

Code:
import java.io.*;
import java.util.ArrayList;
public class Bauteilverwaltung
{
    	 public int n;
	 public int m;
	 private int anzahl=5;
         private int arrayindex=0;
         Bauteil bt[]=new Bauteil[5];

         private void waehleAus()
         {
                  int e=0;
                  BufferedReader menueEin=new BufferedReader(new InputStreamReader(System.in));
                  do
                  {
                           System.out.println("Bitte geben Sie Ihre Auswahl ein:\n\n");
                           System.out.println("Eingabe             = 1");
                           System.out.println("Füge an Stelle ein  = 2");
                           System.out.println("Lösche an Stelle    = 3");
                           System.out.println("Ausgabe             = 4");
                           System.out.println("Ende                = 5\n");
                           System.out.print("-> ");
                           try
                           {
                                    e=Integer.valueOf(menueEin.readLine()).intValue();

                           }
                           catch(IOException ioe)
                           {
                                    System.out.println(ioe.toString());
                           }
                           switch (e)
                           {
                                    case 1:this.gebeEin();break;
                                    case 2:this.fuegeEin();break;
                                    case 3:this.loescheAnStelle();break;
                                    case 4:this.gebeAus();break;
                                    case 5:System.exit(0);break;
                                    default: System.out.println("ungueltige Eingabe!\n");
                           }
                  }while(e!=5);
        }
         public static void main(String[] args)
        {
                  Bauteilverwaltung a=new Bauteilverwaltung();
                  a.waehleAus();
        }
         private void gebeEin()
        {
                  this.bt[this.arrayindex]=new Bauteil();
                  this.arrayindex++;
        }
         private void fuegeEin()
        {
            {
            ArrayList bt=new ArrayList();
            bt.add(1,"m");
           }
}


         private void loescheAnStelle()
        {
        
        }}
 
Also du verwendest in deinem Code Collections (ArrayList) und dort benutzt du ja bereits die add-Methode. Du müsstest nur dein Array (Bauteil bt[]) ebenfalls durch eine solche Liste ersetzen.

Kannst du eventuell nochmal genauer sagen, was dein Problem ist?
 
Also, an dieser Stelle:

Code:
 private void fuegeEin()
        {
            {
            ArrayList bt=new ArrayList();
            bt.add(1,"m");
           }
}
 
 
         private void loescheAnStelle()
        {
        
        }}

Da hänge ich.
Die "1" möchte ich über die Tastatur eingeben können. Es soll die Position bestimmen an welcher eingefügt werden soll. Bei "m" möchte ich dann die Daten des Bauteils eingeben, übers "Formular", also Bezeichnung, Inhalt etc.


Das ganze soll so aussehen:

Code:
run:
Bitte geben Sie Ihre Auswahl ein:
Eingabe             = 1
Füge an Stelle ein  = 2
Lösche an Stelle    = 3
Ausgabe             = 4
Ende                = 5

-> 1

Bezeichnung:   0
Inhalt:        0
Bestellnummer: 0
Gewinde:       0
Preis:         0
Besteller:     0

Bitte geben Sie Ihre Auswahl ein:
Eingabe             = 1
Füge an Stelle ein  = 2
Lösche an Stelle    = 3
Ausgabe             = 4
Ende                = 5

-> 1
Bezeichnung:   1
Inhalt:        1
Bestellnummer: 1
Gewinde:       1
Preis:         1
Besteller:     1
Bitte geben Sie Ihre Auswahl ein:

Eingabe             = 1
Füge an Stelle ein  = 2
Lösche an Stelle    = 3
Ausgabe             = 4
Ende                = 5

bei 2: eine Position an einer Stelle einfügen
bei 3: eine Position an einer bestimmten Stelle löschen
 
Zurück