Hallo Community!
Ich habe folgendes Problem: Ich möchte eine unbestimmte Anzahl an Punkten (jeweils mit x, y & z - Wert) einlesen (zunächst über die Tastatur, später eventuell mittels eines .txt-Files) und dann von einem bestimmten Punkt die Koordinaten wieder ausgeben. Dazu habe ich die Klasse Punkt mit genannten Variablen erstellt. In der Main Methode habe ich eine ArrayList erstellt und füge in einer while-Schleife in jedem Durchlauf einen Punkt hinzu. Laut Debugger funktioniert das Hinzufügen auch. Wenn ich allerdings einen beliebigen Punkt auslesen will, dann wird immer nur der zuletzt eingegebene ausgegeben.
Liegt es daran, dass ich in der While Schleife immer wieder den Punkt p1 überschreibe? Wenn ja, gibt es eine elegantere Methode eine unbestimmte Anzahl an Punkten einzulesen, mit denen ich dann auch weiterrechnen kann?
Hier der Source Code:
Ich bin Anfänger, also bin ich dankbar für jeden "einfachen Lösungsvorschlag" 😉
Ich arbeite übrigens mit Eclipse Luna.
Ich habe folgendes Problem: Ich möchte eine unbestimmte Anzahl an Punkten (jeweils mit x, y & z - Wert) einlesen (zunächst über die Tastatur, später eventuell mittels eines .txt-Files) und dann von einem bestimmten Punkt die Koordinaten wieder ausgeben. Dazu habe ich die Klasse Punkt mit genannten Variablen erstellt. In der Main Methode habe ich eine ArrayList erstellt und füge in einer while-Schleife in jedem Durchlauf einen Punkt hinzu. Laut Debugger funktioniert das Hinzufügen auch. Wenn ich allerdings einen beliebigen Punkt auslesen will, dann wird immer nur der zuletzt eingegebene ausgegeben.
Liegt es daran, dass ich in der While Schleife immer wieder den Punkt p1 überschreibe? Wenn ja, gibt es eine elegantere Methode eine unbestimmte Anzahl an Punkten einzulesen, mit denen ich dann auch weiterrechnen kann?
Hier der Source Code:
Java:
public class Hauptmethode {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
System.out.println("Anzahl der Punkte definieren!");
int anzahl = sc.nextInt();
int i = 0;
ArrayList
Punktliste = new ArrayList
();
Punkt p1 = new Punkt();
while ( i < anzahl)
{
System.out.println("Welche X Koordinate?");
p1.setX(sc.nextDouble());
System.out.println("Welche Y Koordinate?");
p1.setY(sc.nextDouble());
System.out.println("Welche Z Koordinate?");
p1.setZ(sc.nextDouble());
Punktliste.add(i, p1);
i++;
}
System.out.println("Von welchem Punkt die Koordinaten anzeigen?");
int nr = sc.nextInt();
System.out.println("Punkt: " + nr + " X " + Punktliste.get(nr).getX());
}
Ich bin Anfänger, also bin ich dankbar für jeden "einfachen Lösungsvorschlag" 😉
Ich arbeite übrigens mit Eclipse Luna.
Zuletzt bearbeitet: