# Arrays in Array Speichern



## Neondream (8. Mai 2012)

Hallo Leute,

ich erstelle garde ein Programm zum aufnehmen von Pizza bestellungen und zwar werden die Bestellungen über 2 seperate Methoden aufgenommen:

```
public static String []  adresse()
	{
		String [] adresse = new String[2];
		Scanner scan = new Scanner( System.in);
		for(int i=0; i<adresse.length;i++)
		{
			if(i==0)
			{
				System.out.print("Name: ");
				adresse[i]=scan.next();
				System.out.println();
			}
			if(i==1)
			{
				System.out.print("Straße: ");
				adresse[i]=scan.next();
				System.out.println();
			}
		}	
		return adresse;
	}
	public static String []  aufnahme()
	{
		String [] bestellungen = new String[20];
		int i =0;
		Scanner scan = new Scanner( System.in);
		
		while(!bestellungen[i].equalsIgnoreCase("q"))
			System.out.print("PizzaNr: ");
			bestellungen[i] = scan.next();
			System.out.println();
			i++;
			System.out.print("Menge: ");
			bestellungen[i] = scan.next();
			System.out.println();
			i++;
			System.out.println("beenden Sie den Bestellvorgang durch drücken der Taste 'q'");
		
		return bestellungen;
	}
```

diese sollen nun in der Mainmethode in einem weiteren Array gespeichert werden:


```
public static void main(String[] args) 
	{
		// TODO Auto-generated method stub

		
		System.out.println("Wilkommen zu Noorsey");
		System.out.println("-a Bestellung aufnehmen");
		System.out.println("-r Bestellung entfernen");
		System.out.println("-l Offene Bestellungen ausgeben");
		System.out.println("-q Noorsy beenden");
		
		Scanner scan = new Scanner (System.in);
		String [] bestellungen = new String[100];
		int zaehler = 0;
		String eingabe = " ";
		while (!eingabe.equalsIgnoreCase("q"))
		{
			eingabe =scan.next();
			if(eingabe.equals("a"))
			{
				bestellungen[i] = order.adresse();
			}
		}
		
		
	}
```


sooo meine Frage ist nun kann ich meine Arrays in einem seperaten Array-Array abspeichern oder gibt es dort eine andere Methode?

Danke


----------



## Final_Striker (8. Mai 2012)

Du kannst mehrdimensionale Arrays verwenden oder dir gleich eine richtige Klasse mit Attributen schreiben.


----------



## Neondream (8. Mai 2012)

hast du vllt eine kleine starthilfe, wie ich mir die klasse mit den Attributen schreiben soll?
hätte jetzt keine idee....

das mehrdimensionale Array stelle ich mir ziemlich komplex bis nicht lösbar vor das recht viele verschiedene informationen verarbeitet werden müssen


----------



## Final_Striker (8. Mai 2012)

z.B. Eine Klasse 
	
	
	
	





```
Adresse
```
 mit 
	
	
	
	





```
name
```
und 
	
	
	
	





```
strasse
```
als Attribute.


----------



## Neondream (8. Mai 2012)

okay das mit dem mehrdimensionalen array hätte ich jetzt verstanden 

allerdings wenn ich eine klasse schreibe,
müsste ich ja trotzdem die daten alle in einem array speichern,
bzw die klasse in einem ??KLASSEN ARRAY??? ^^ speichern

um hinterher alles auslesen zu können oder?


----------



## KingOfExceptions (8. Mai 2012)

Kleiner Tip:


```
Bestellung bestellung=new Bestellung("Hans", "Salami");
Vector<Bestellung> alleBestellungen=new Vector<Bestellung> (50,5);
alleBestellungen.add(bestellung);
```


oder du machst:


```
class Bestellung
{
    Vector<String> namen=new Vector <String> (50,5);
    Vector <String> arten=new Vector <String> (50,5);

    public Bestellung(String name, String art)
    {
      namen.add(name);
      arten.add(art);
    }
}
```
[WR]Pseudocode[/WR]


----------



## Final_Striker (9. Mai 2012)

```
class Bestellung
{
    Vector<String> namen=new Vector <String> (50,5);
    Vector <String> arten=new Vector <String> (50,5);
 
    public Bestellung(String name, String art)
    {
      namen.add(name);
      arten.add(art);
    }
}
```

[WR]So etwas hässliches bitte auf keinem Fall machen![/WR]
Wenn ich mir eine Klasse Bestellung schreibe, dann schreibe ich mir auch eine Klasse Adresse. 
Außerdem sollte man die Klasse Vector nicht nutzen, wenn es nicht nötig ist sondern auf ArrayList oder LinkedList zurück greifen.


----------



## KingOfExceptions (9. Mai 2012)

Final_Striker hat gesagt.:


> ```
> class Bestellung
> {
> Vector<String> namen=new Vector <String> (50,5);
> ...



was ist jetzt daran sooo hässlich?! 
Es war EINE möglichkeit das problem so zu lösen.



Final_Striker hat gesagt.:


> Wenn ich mir eine Klasse Bestellung schreibe, dann schreibe ich mir auch eine Klasse Adresse.



was willst du mit einer klasse adresse?



Final_Striker hat gesagt.:


> Außerdem sollte man die Klasse Vector nicht nutzen, wenn es nicht nötig ist sondern auf ArrayList oder LinkedList zurück greifen.



Ist geschmackssache. Immerhin ist vector auch nicht deprecated, also kann es ja nicht so schlimm sein. Ich benutze vector gerne, weil er perfekt auf meine bedürfnisse abgestimmt ist und ich auch noch nie probleme mit ihm hatte.


----------



## vanny (9. Mai 2012)

Ich schliesse mich da Final_Striker an.
Wenn ich eindeutig identifizierbare Datentypen habe, dann schreibe ich mir dafür eine "WrapperKlasse", die per Konstruktor alle Werte bekommt und per GetterMethoden zurückgibt.
Der Vorteil ist zum einen, dass ich nicht zig nebenläufige oder verschachtelte Collections laufen habe und das jedes Attribut durch eine saubere Datenkapselung geprüft werden kann.

Der Vector ist natürlich Geschmackssache, wobei er halt nicht mehr der jüngste ist.
Wer nicht mit der Zeit geht, der geht halt mit der Zeit.

Gruß Vanny


----------



## timbeau (9. Mai 2012)

Ich finds auch häßlich, und nur weil er nicht deptrecated ist heißt das garnichts. Deprectaed hat auch eine andere Bedeutung, richtig programmieren heißt nicht, nur auf deprecated-Krams zu verzichten. 

@Neondream: Schreib alles was dir zu einer Adresse einfällt in eine Klasse. Straße, Name, Nr usw. 

Dann getter und setter und du hast eine schöne "Bean" 

Vor allem später wird es viel einfacher auf die Straße einer Adresse zugreifen als auf den Array-Index [2][1][24]


----------



## Final_Striker (9. Mai 2012)

> was ist jetzt daran sooo hässlich?!


Zwei Vectoren zu führen. Kommt in einer der beiden Vectoren irgendwas durcheinander sind alle Daten für die Katz.




> Ist geschmackssache. Immerhin ist vector auch nicht deprecated, also kann es ja nicht so schlimm sein. Ich benutze vector gerne, weil er perfekt auf meine bedürfnisse abgestimmt ist und ich auch noch nie probleme mit ihm hatte.



Nein, es ist eben keine Geschmackssache. Ist hier ganz gut beschrieben warum:
http://www.java-forum.org/allgemeines/18444-vector-arraylist-anderen-collection-howto.html


----------

