|
You last visited: Today at 14:30
Advertisement
[Java] Objekte mit Foreach ausgeben
Discussion on [Java] Objekte mit Foreach ausgeben within the Java forum part of the Coders Den category.
11/18/2014, 20:57
|
#1
|
elite*gold: 0
Join Date: Nov 2009
Posts: 13,882
Received Thanks: 9,861
|
[Java] Objekte mit Foreach ausgeben
Hallo zusammen,
Ich habe im Studium gerade mit Java angefangen und bräuchte mal ebend Hilfe.
Ich habe eine Klasse Rohstoffe, eine Klasse Items und eine Klasse Main.
In der Main-Klasse will ich über eine showShop()-Methode alle Rohstoffe in einer foreach-Schleife ausgeben lassen.
Der Rohstoffe Konstruktor sieht wie folgt aus
Code:
Rohstoffe(int id, String name, int strength, int cost, int price)
in der Items-Klasse erzeuge ich die Rohstoffe-objekte wie folgt:
Code:
Rohstoffe stein = new Rohstoffe(0, "Stein", 0, 10, 5);
Rohstoffe eisen = new Rohstoffe(1, "Eisen", 1, 20, 8);
wie kann ich nun in der Main auf die Rohstoffe in Items zugreifen und in einer Schleife ausgeben?
|
|
|
11/18/2014, 21:38
|
#2
|
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
|
Du brauchst einen Array der Rohstoffe
PHP Code:
Rohstoffe[] rohstoffe = new Rohstoffe[2]; //2 ist die Anzahl der elemente rohstoffe[0] = new Rohstoffe(0, "Stein", 0, 10, 5); rohstoffe[1] = new Rohstoffe(1, "Eisen", 1, 20, 8);
for (Rohstoffe r : rohstoffe) { System.out.println(r.name + r.strength + r.cost + r.price); }
|
|
|
11/18/2014, 22:00
|
#3
|
elite*gold: 0
Join Date: Nov 2009
Posts: 13,882
Received Thanks: 9,861
|
so hat der Rohstoff aber keinen namen mehr.
Also müsste ich in anderen Klassen über den Arrayindex auf diesen Rohstoff zugreifen. Das ist ziemlich umständlich, wenn ich mal woanders stein.getId() o.Ä. aufrufen will.
|
|
|
11/18/2014, 22:10
|
#4
|
elite*gold: 20
Join Date: Nov 2010
Posts: 552
Received Thanks: 350
|
Ein Dictionary per
Code:
Map<String, Rohstoffe> dict = new HashMap<String, Rohstoffe>();
erstellen und dann über
dein Object ansprechen, wäre vielleicht eine Lösung.
|
|
|
11/18/2014, 22:57
|
#5
|
elite*gold: 0
Join Date: Feb 2009
Posts: 1,137
Received Thanks: 573
|
Du nimmst den Array von oben und
PHP Code:
public Rohstoffe Stein; ... Stein=rohsoffe[0];
so hast du einen Verweis auf den Array
oder du Machst einfach
PHP Code:
public Rohstoffe getRohstoffByName(string name) { for (Rohstoffe r : rohstoffe) { if (r.name == name) { return r; } } }
und nutzt das dann mit
PHP Code:
Items.getRohstoffByName("Stein").getId
|
|
|
11/18/2014, 23:28
|
#6
|
elite*gold: 203
Join Date: Sep 2007
Posts: 732
Received Thanks: 190
|
Die Variante von xXKonaXx wäre die Beste, da man nicht mehr über die Objekte iterieren müsste, sondern direkt per Key Zugriff hätte.
|
|
|
11/20/2014, 19:21
|
#7
|
elite*gold: 0
Join Date: Sep 2008
Posts: 9,484
Received Thanks: 3,109
|
Du musst dir Getter Methoden schreiben. In deiner Rohstoff Klasse..
Code:
for (Rohstoffe r : rohstoffe) {
System.out.println(r.getName() + r.getStrength() + r.getCost() + r.getPrice());
}
In der Items-Klasse solltest du eine Arrayliste führen, mit deinen ganzen Rohstoffen als Objekt darin.
Code:
ArrayList<rohstoffe> itemlist = new ArrayList<rohstoffe>()
|
|
|
11/21/2014, 00:22
|
#8
|
elite*gold: 41
Join Date: Nov 2007
Posts: 3,385
Received Thanks: 2,700
|
gib doch bitte mal die konkrete aufgabe an. meistens ist man ja mit dem was man machen darf am anfang des studiums sehr eingeschränkt.
arrays sind in unserer java-vorlesung zum beispiel ein tabu thema. sämtliche libraries auch
|
|
|
11/21/2014, 00:46
|
#9
|
elite*gold: 724
Join Date: Mar 2011
Posts: 10,479
Received Thanks: 3,318
|
^this.
Aufgaben im Studium beschäftigen sich selten damit, die Lösung mithilfe der Standardbibliotheken zu finden, sondern mit dem Finden eines Algorithmus, mit dem ein Problem gelöst werden kann. Natürlich könnte man in der Algorithmen-Vorlesung einfach std::sort verwenden, das hilft einem aber nicht beim tieferen Verständnis der Theorie, und darum geht es beim Studium.
|
|
|
 |
Similar Threads
|
[Java] Array zusammengesetzt ausgeben ?
11/05/2014 - Java - 8 Replies
Hallo, Community.
Ich habe in meinem Code einen Array, mit verschiedenen Werten. Diesen möchte ich zusammengesetzt ausgeben lassen und auch verwenden können. Ausgeben lassen habe ich diesen so:
for(String x : array){
System.out.print(x);
}
So werden die einzelnen Werte aber nur aneinander angereiht, und ich kann die ganze Zusammensetzung nicht als Variable speichern bzw. benutzen.
|
Explode im Foreach
06/22/2014 - Web Development - 7 Replies
Hi,
habe leider wieder ein Problem bei meiner zukünftigen Webseite.
Ich möchte eine Userliste die zeilenweise im Format (user:pw) aus einer Textarea an PHP übergeben und schließlich zeilenweise auslesen.
Hier mein PHP Code:
<?php
if (isset ($_POST)) {
//Die Textarea nach jeder Zeile trennen und in einem Arrayfeld speichern
|
[Java] Objekte in anderen Klassen benutzen
08/08/2013 - General Coding - 8 Replies
Meine Frage ist, ich habe die Klasse Main erstellt, in dieser habe ich eine Box erstellt :
public Main() {
Box b1 = new Box();
b1.setColor("red");
}
diese will ich jetzt in der Klasse Wuerfel verändern, wie kann ich also die Box übernehmen um Sie in Wuerfel verändern zu können? Und wie kann ich einen Befehl von der Box also beispielsweise b1.setVisible außerhalb vom Konstrukor verwenden?
|
[Java]Array vom Typ String > Inhalt ausgeben lassen
10/30/2012 - General Coding - 2 Replies
Ahoi epvp,
String array= {"x", "y"};
Es handelt sich um diesen Array vom Typ String.
Der befindet sich in Klasse "mitarbeiterSuche", allerdings
will ich ihn in der Klasse "main" ausgeben.
Woran kann das liegen? Eclipse sagt mir dauernd:
"array cannot be resolved to a variable"
|
Java- Farbe ausgeben Problem
07/06/2011 - General Coding - 0 Replies
hey ihr coder,
ich hab ein kleines problem
und zwar sollen wir als projekt eine straßenkreuzung in java programmieren mit normaler straße, fußgängerweg, ampeln, autos und fußgängern
grafisch wird das ganze mit "Zeichenfenster" dargestellt
jetzt tritt folgendes problem auf:
falls eine ampel auf rot steht hält das auto an, soweit gut
jetzt benötige ich aber eine methode die es mir erlaubt den farbwert eines beliebigen pixels auf der zeichenoberfläche auszugeben um zu überprüfen, ob...
|
All times are GMT +1. The time now is 14:31.
|
|