Problem: Array alle Einträge gleich

skacaptain

Mitglied
Ich habe zu Testzwecken mein Programm im Debugmodus gestartet und für jede Anfrage nacheinander folgende Werte in der Console übermittelt: 2, 10, 30, 40, 70.
Als ich die while Schleife zeilenweise durchlaufen bin, konnte ich im ersten durchlauf sehen im variables view des debuggers sehen, dass die Einträge 10 und 30 korrekt überall eingetragen wurden.
Im 2. durchlauf der Schleife konnte ich nun sehen, dass nach dem einlesen aus der Console die 2. x Koordinate nun auch im 0. Eintrag des Arrays eingetragen wurde; die 10 wurde also überschrieben und auf 40 gesetzt. Mit der y Koordinate das gleiche Phänomen.
in der Zeile
Java:
coordinates[i] = coordinate;
wurden dann auch die Werte 40 und 70 im 1. Eintrag des Arrays eingetragen.

Doch warum wird der 0. Array Eintrag überschrieben?
Und was kann ich zur Fehlerbehebung tun?
Ich möchte das mein Programm viele verschiedene Koordinaten in einem Array speichert.

Programmtext:
Java:
package aufgabe.eins;

import java.util.Scanner;

public class SortPoints {

   public static void main(String[] args) {
       Point2D[] coordinates;
       Point2D coordinate = new Point2D();
       System.out.print("Anzahl an Koordinaten:");
       Scanner scanner = new Scanner(System.in);
       int anzahl = scanner.nextInt();
       coordinates = new Point2D[anzahl];
       int i=0;
       while(i < anzahl){
           System.out.print("x-Koordinate Punkt " + i +":");
           coordinate.setX(scanner.nextDouble());
           System.out.print("y-Koordinate Punkt " + i +":");
           coordinate.setY(scanner.nextDouble());
           coordinates[i]= coordinate;
           i++;
       }
   }
  
  
}


package aufgabe.eins;

public class Point2D {

   private double x;
   private double y;
  
   Point2D(){
      
   }

   public double getX() {
       return x;
   }

   public void setX(double x) {
       this.x = x;
   }

   public double getY() {
       return y;
   }

   public void setY(double y) {
       this.y = y;
   }
}
 
Zuletzt bearbeitet:

X5-599

Top Contributor
Du hast nur ein einziges Point2D Objekt. Jede Stelle in deinem Array verweist auf dieses Objekt. Eine Änderung an diesem Point2D Objekt ist also von jeder Stelle des Arrays aus sichtbar.
 

VfL_Freak

Top Contributor
Moin,

zum einen: poste den Code bitte in Code-Tags ... so bekommt man ja Augenkrebs :confused:

Dann so aus dem Bauch raus:
ich würde es mal mit
Java:
coordinates[i] = coordinate;
versuchen ...

Gruß Klaus
 

skacaptain

Mitglied
Die eckigen Klammern in der Zeile "coordinates = coordinate;" sind nicht anscheinend nicht sichtbar. Müssten durch verschiedene i nicht auch verschiedene Einträge gestaltet werden?
 

Harry Kane

Top Contributor
Müssten durch verschiedene i nicht auch verschiedene Einträge gestaltet werden?
Du hast nur ein einziges Point2D Objekt, da du nur einmal sagst "new Point2D()". Deine "Gestaltung" rufst du immer auf demselben Objekt auf.
Bei der Widergabe von Codefragmenten, bei denen es um Arrayindices geht, bitte nicht i als Laufvariable verwenden, weil das vom Browser als Beginn eines Blockes in kursiver Schrift interpretiert wird. Nimm lieber j.
 

skacaptain

Mitglied
Ich habe nun versucht für jeden Array Eintrag ein neues Objekt anzulegen: Zeile
Java:
  coordinates[i] = new Point2D();
.
Ich habe immernoch das gleiche Problem... wieso?? :(

Java:
package aufgabe.eins;

import java.util.Scanner;

public class SortPoints {

   public static void main(String[] args) {
       Point2D[] coordinates;
       Point2D coordinate = new Point2D();
       System.out.print("Anzahl an Koordinaten:");
       Scanner scanner = new Scanner(System.in);
       int anzahl = scanner.nextInt();
       coordinates = new Point2D[anzahl];
       int i=0;
       while(i < anzahl){
           System.out.print("x-Koordinate Punkt " + i +":");
           coordinate.setX(scanner.nextDouble());
           System.out.print("y-Koordinate Punkt " + i +":");
           coordinate.setY(scanner.nextDouble());
           coordinates[i] = new Point2D();
           coordinates[i] = coordinate;
           i++;
       }
       
       for(int j = 0; j < anzahl; j++){
           System.out.println(coordinates[j].getX());
           System.out.println(coordinates[j].getY());

       }
   }
   
   
}
 

Flown

Administrator
Mitarbeiter
Mach doch mal:
Java:
package aufgabe.eins;

import java.util.Scanner;

public class SortPoints {

   public static void main(String[] args) {
       Point2D[] coordinates;
       System.out.print("Anzahl an Koordinaten:");
       Scanner scanner = new Scanner(System.in);
       int anzahl = scanner.nextInt();
       coordinates = new Point2D[anzahl];
       int i=0;
       while(i < anzahl){
           Point2D coordinate = new Point2D();
           System.out.print("x-Koordinate Punkt " + i +":");
           coordinate.setX(scanner.nextDouble());
           System.out.print("y-Koordinate Punkt " + i +":");
           coordinate.setY(scanner.nextDouble());
           coordinates[i] = coordinate;
           i++;
       }
      
       for(int j = 0; j < anzahl; j++){
           System.out.println(coordinates[j].getX());
           System.out.println(coordinates[j].getY());

       }
   }
}
 

Joose

Top Contributor
Ich habe nun versucht für jeden Array Eintrag ein neues Objekt anzulegen: .....
Ich habe immernoch das gleiche Problem... wieso?? :(

Probiere den Code von Flown. Um dir den Fehler aufzuzeigen:
Java:
           coordinates[i] = new Point2D(); // hier erzeugst du zwar ein neues Point Objekt und weißt es dem Array an Index i zu, ....
           coordinates[i] = coordinate; // ... aber hier überschreibst du das soeben zugewiesene (neu erstellte) Objekt wieder durch das vorhande
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
L Unbekanntes Problem mit 2d Array Java Basics - Anfänger-Themen 6
J Problem mit einer Methode die gewissen Inhalt einer Array löschen soll Java Basics - Anfänger-Themen 9
J Problem mit einer Methode, die beliebig viele Objekte in Array speichern soll Java Basics - Anfänger-Themen 6
Splayfer Java Array Problem... Java Basics - Anfänger-Themen 2
A Array problem Java Basics - Anfänger-Themen 16
J Problem mit Array: 2 Klassen Java Basics - Anfänger-Themen 2
I wieder mit einer Umwandelung habe ich Problem (diesmal von char Array zu char) Java Basics - Anfänger-Themen 1
B Array Problem Java Basics - Anfänger-Themen 3
F Problem mit der Aufgabe(Array) Java Basics - Anfänger-Themen 21
H boolean Array Problem Java Basics - Anfänger-Themen 7
B Problem beim grundsätzlichen Verständnis bei Rekursion mit 2-dimensionalen Array Java Basics - Anfänger-Themen 6
L Array-Problem/Zufallszahlen Java Basics - Anfänger-Themen 7
G Problem mit Array Java Basics - Anfänger-Themen 2
K Problem mit Methode(Array,Boolean,ForSchleife) Java Basics - Anfänger-Themen 6
C Problem mit Arrays im Array Java Basics - Anfänger-Themen 11
A Problem mit Array Ausgabe Java Basics - Anfänger-Themen 7
L 2 dimensionales Array, Problem der Ausgabe Java Basics - Anfänger-Themen 4
E Array Problem Java Basics - Anfänger-Themen 1
L Problem mit Array Programm Java Basics - Anfänger-Themen 2
M Array problem Java Basics - Anfänger-Themen 9
M If und Array-Problem Java Basics - Anfänger-Themen 6
P OOP Array-Problem Java Basics - Anfänger-Themen 5
S Problem mit Array.Length Java Basics - Anfänger-Themen 2
R Array Problem Java Basics - Anfänger-Themen 17
U Methoden Zugriff auf Array von weiterer Methode einer Klasse, Rückgabewert Problem Java Basics - Anfänger-Themen 5
P Array queue problem Java Basics - Anfänger-Themen 1
E Array zu Liste - kleines Problem Java Basics - Anfänger-Themen 6
F Problem mit Array Java Basics - Anfänger-Themen 8
N OOP Problem mit Array Java Basics - Anfänger-Themen 17
M Problem mit 2D Array Java Basics - Anfänger-Themen 3
M Problem mit Array und replace Java Basics - Anfänger-Themen 3
D Array Problem Java Basics - Anfänger-Themen 4
F Array Problem !? Java Basics - Anfänger-Themen 6
M Erste Schritte Array Problem Java Basics - Anfänger-Themen 8
F Problem mit Array, Java Basics - Anfänger-Themen 4
F Problem: Verschlüsselung von String in Array Fehler Java Basics - Anfänger-Themen 2
S Problem bei Kollision zwischen Array-objekten! Java Basics - Anfänger-Themen 2
B Problem mit Array Java Basics - Anfänger-Themen 5
J Array Problem Java Basics - Anfänger-Themen 2
K Problem beim Array aufruf Java Basics - Anfänger-Themen 4
D Klassen Problem mit Eigener Array-Klasse Java Basics - Anfänger-Themen 10
N Array problem bei einem magischen Quadrats Java Basics - Anfänger-Themen 3
P Klassen Klassen mit Array Problem Java Basics - Anfänger-Themen 4
T Problem mit Array Konvertierung Java Basics - Anfänger-Themen 13
T ArrayIndexOutOfBoundsException - Problem mit Array-Größe Java Basics - Anfänger-Themen 4
L Array Problem NullPointerException Java Basics - Anfänger-Themen 3
K Problem: Array String to Integer Java Basics - Anfänger-Themen 2
M Char-Array Problem Java Basics - Anfänger-Themen 6
D Problem mit TextFeld Array Java Basics - Anfänger-Themen 18
A Array Zugriff- Problem Java Basics - Anfänger-Themen 5
V 2D - Objekt Array Problem Java Basics - Anfänger-Themen 3
K Java Array Problem Java Basics - Anfänger-Themen 3
L Problem mit Array Java Basics - Anfänger-Themen 3
K kleines Array-Problem Java Basics - Anfänger-Themen 6
X Array out of bounds problem Java Basics - Anfänger-Themen 7
M Array Problem Java Basics - Anfänger-Themen 2
K Generische Klasse mit innerer Klasse | Problem mit Array Java Basics - Anfänger-Themen 6
E Array Problem... Java Basics - Anfänger-Themen 14
P array problem Java Basics - Anfänger-Themen 9
P Codeschnipsel Verständnis Problem (Array) Java Basics - Anfänger-Themen 6
F Array Problem bei ByteburgTarif Java Basics - Anfänger-Themen 2
P Problem mit Laden und Ausgeben eines array-Objekts Java Basics - Anfänger-Themen 4
A Problem mit einem Array aus JButtons Java Basics - Anfänger-Themen 4
D Array multiplikations Problem Java Basics - Anfänger-Themen 26
D Array Problem Java Basics - Anfänger-Themen 5
B Mehrdimensionale Array Problem Java Basics - Anfänger-Themen 12
T Array-Vector Problem Java Basics - Anfänger-Themen 18
T Blutiger Anfänger mit Array Problem Java Basics - Anfänger-Themen 8
T problem mit array Java Basics - Anfänger-Themen 9
S String split array.length Problem Java Basics - Anfänger-Themen 3
B Problem mit Object Array Java Basics - Anfänger-Themen 8
W Problem mit BubbleSort und Array Java Basics - Anfänger-Themen 10
G Problem mit der Rückgabe von einem Array Java Basics - Anfänger-Themen 3
G Array-Problem Java Basics - Anfänger-Themen 3
M sinus berechnen array problem Java Basics - Anfänger-Themen 2
C array problem Java Basics - Anfänger-Themen 7
G Array ,Matrix Problem Java Basics - Anfänger-Themen 20
Antoras Problem mit Array Java Basics - Anfänger-Themen 5
K Problem mit 2 Dimensionalen Array Java Basics - Anfänger-Themen 4
D Array reverse Problem, da Referenz nicht auf tmpArray zeigt Java Basics - Anfänger-Themen 4
G Kleines Problem mit Array Java Basics - Anfänger-Themen 14
0 Array problem Java Basics - Anfänger-Themen 4
S Problem mit Array-Erstellung Java Basics - Anfänger-Themen 5
A array problem Java Basics - Anfänger-Themen 4
G array Problem Java Basics - Anfänger-Themen 9
H Problem mit array Java Basics - Anfänger-Themen 5
zilti Array-Problem Java Basics - Anfänger-Themen 6
J Array - Vertauschen Problem mit char/int Java Basics - Anfänger-Themen 6
M Problem mit Array in Methodenkopf Java Basics - Anfänger-Themen 2
K problem beim schreiben in ein int-array Java Basics - Anfänger-Themen 9
S JTable Problem mit einzufügendem Array Java Basics - Anfänger-Themen 6
D Problem mit Array brauche schnell Hilfe Java Basics - Anfänger-Themen 11
R Problem mit AbstractTableModel oder Array! Java Basics - Anfänger-Themen 5
G Problem mit Array bei einem 4-Gewinnt Spiel Java Basics - Anfänger-Themen 2
K problem mit resultset und 2d-array Java Basics - Anfänger-Themen 3
G Problem mit array Java Basics - Anfänger-Themen 2
P Array-Problem Java Basics - Anfänger-Themen 4
L Array Problem Java Basics - Anfänger-Themen 9
B Array Manipulation Problem Java Basics - Anfänger-Themen 11
B Array Problem (out of Bounds Exception) Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben