# an bestimmter stelle löschen / einfügen



## spot (1. Mai 2011)

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ß


----------



## CPoly (1. Mai 2011)

spot hat gesagt.:


> Die Klasse B verwaltet Objekte der Klasse A.



Und wie machst du das? Normalerweise würden man das ja mit Collections machen und da musst du ja nichts mehr selbst schreiben

http://download.oracle.com/javase/1.4.2/docs/api/java/util/List.html#add(int, java.lang.Object)
http://download.oracle.com/javase/1.4.2/docs/api/java/util/List.html#remove(int)


----------



## spot (1. Mai 2011)

Hallo,

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


```
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();
}
}
```


```
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()
        {
        
        }}
```


----------



## CPoly (1. Mai 2011)

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?


----------



## spot (1. Mai 2011)

Also, an dieser Stelle:


```
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:


```
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


----------

