Arrays auf gleichheit untersuchen funktioniert nicht

JimBeam

Mitglied
Hi Leute,
ich habe ein 2D Array und dies gebe ich in eine Methode und bekomme vllt., wenn die Bedingungen stimmen, ein array mit einer neuen Zeile sprich in der ersten Dimension+1 und veränderten Werten in der zweiten dimension, der zweiten Zeile zurück. Nun habe ich das in eine Schleife(nur zum Test) gepackt, die endet sobald sich das Array ändert. Nun stopt diese allerdings nicht und ich denke es leigt an meinem Gelichheitstest array1.equals(array2)., aber was ist daran falsch.
Ps ich habe es auch schon mit == und mit Arrays.euqual(array1,array2) versucht.

hier mein code:

Java:
int i=0;
        int x=0;
        double [][] Tierneu;
        double [][] Tier = new double [1][4];
        Tier[0][0]=5.0;
        Tier[0][1]=5.0;
        Tier[0][2]=5.0;
        Tier[0][3]=5.0;
       
        do{
           
            Tierneu=Evolution(Tier);
            if (Tier.equals(Tierneu)){x++; System.out.println(x);}
            else { System.out.println(Arrays.toString(Tierneu)); i++;}
           
        }
        while (i<1);


Die methode Evolution liefert scheinbar auch ein richtiges Array zurück.
Die Ausgabe zählt wie vorgegeben einfach nur durch.
 

JStein52

Top Contributor
Ehrlich gesagt verstehe ich gar nicht was du da machen willst. Willst du die Elemente von Tier und Tierneu elementweise vergleichen ? Denn Tier wird ja vermutlich niemal gleich Tierneu sein da deine Methode Evolution vermutlich ein neues Array erzeugt.
 

JimBeam

Mitglied
Ehrlich gesagt verstehe ich gar nicht was du da machen willst. Willst du die Elemente von Tier und Tierneu elementweise vergleichen ? Denn Tier wird ja vermutlich niemal gleich Tierneu sein da deine Methode Evolution vermutlich ein neues Array erzeugt.
Naja also Evolution gibt entweder halt genau das gleiche Array zurück wenn halt nix passiert oderhalt eines wo eine neu Zeile reinkommt.
Also im prinzip möchte ich nur überprüfen ob sich halt irgendwas verändert hat
 

Meniskusschaden

Top Contributor
Naja also Evolution gibt entweder halt genau das gleiche Array zurück
Wenn es das gleiche Array wäre, müsste die Schleife meines Erachtens terminieren. Also ist es vermutlich dasselbe. Das müsstest du dann in Evolution korrigieren.
Ps ich habe es auch schon mit == und mit Arrays.euqual(array1,array2) versucht.
Habe zwar den Sinn der Schleife noch nicht wirklich verstanden, aber wahrscheinlich wäre Arrays.deepEquals()besser geeignet.
 
X

Xyz1

Gast
Du hast Tier und Tierneu großgeschrieben. Das müsste aber kleingeschrieben werden. Ich war jetzt lange am rätseln, ob Tier eine eigene Klasse ist, ob von Double abgeleitet werden darf, ob Auto-Boxing auch dann greifen würd. Wahrscheinlich nix davon.
Woanders wäre das erlaubt. C++11 einmal erwähnt.

Also, um mal zum Punkt zu kommen, WAS soll WIE inhaltlich verglichen werden?
 

JimBeam

Mitglied
Du hast Tier und Tierneu großgeschrieben. Das müsste aber kleingeschrieben werden. Ich war jetzt lange am rätseln, ob Tier eine eigene Klasse ist, ob von Double abgeleitet werden darf, ob Auto-Boxing auch dann greifen würd. Wahrscheinlich nix davon.
Woanders wäre das erlaubt. C++11 einmal erwähnt.

Also, um mal zum Punkt zu kommen, WAS soll WIE inhaltlich verglichen werden?

Also im prinzip soll einfach nur verglichen werden ob der Inhalt beider Arrays gleich ist.
 

JimBeam

Mitglied
Also das is die Methode dazu
Java:
static double[][] Evolution (double[][] Tier){

int i=0;
double TempD;
double WasserD;
double NahrungD;
double LFeuchteD;
double TempDneu;
double WasserDneu;
double NahrungDneu;
double LFeuchteDneu;


     TempD=Tier[i][0];
     WasserD=Tier[i][1];
     NahrungD=Tier[i][2];
     LFeuchteD=Tier[i][3];
     
TempDneu=Mutation(1000,TempD);
WasserDneu=Mutation(1000,WasserD);
NahrungDneu=Mutation(1000,NahrungD);
LFeuchteDneu=Mutation(1000,LFeuchteD);

if (TempDneu!=TempD){
   i++;
   Tier[i][0]=TempDneu;
   Tier[i][1]=WasserDneu;
   Tier[i][2]=NahrungDneu;
   Tier[i][3]=LFeuchteDneu;
}   

else if (TempDneu==TempD&&WasserDneu!=WasserD){
   i++;
   Tier[i][0]=TempDneu;
   Tier[i][1]=WasserDneu;
   Tier[i][2]=NahrungDneu;
   Tier[i][3]=LFeuchteDneu;
}
else if (TempDneu==TempD&&WasserDneu==WasserD&&NahrungDneu!=NahrungD){
   i++;
   Tier[i][0]=TempDneu;
   Tier[i][1]=WasserDneu;
   Tier[i][2]=NahrungDneu;
   Tier[i][3]=LFeuchteDneu;
}
else if (TempDneu==TempD&&WasserDneu==WasserD&&NahrungDneu==NahrungD&&LFeuchteDneu!=LFeuchteD){
   i++;
   Tier[i][0]=TempDneu;
   Tier[i][1]=WasserDneu;
   Tier[i][2]=NahrungDneu;
   Tier[i][3]=LFeuchteDneu;
}
         

return Tier;   
}
 

Meniskusschaden

Top Contributor
Du übergibst Evolution in Form der Variablen Tier eine Referenz auf dein Array. Mithilfe dieser Referenz nimmst du innerhalb von Evolution dann einige Änderungen vor und gibst die Referenz auf das Array zurück. In der aufrufenden Methode wird die zurückgegebene Referenz dann der Variablen Tierneu zugewiesen. Nun halten beide Variablen (Tier und Tierneu) eine Referenz auf dasselbe Array. Es gibt also nur ein Array, welches sich natürlich niemals von sich selbst unterscheiden kann.
 

Meniskusschaden

Top Contributor
Jo also ich habs grad nochma mitm dubugger probiert es liegt auf jedenfall am vergleich der arrays.
Ja, der Vergleich ist auch noch nicht richtig. Im Moment würde er true liefern, falls beide Variablen dasselbe Array referenzieren und false, falls sie unterschiedliche Arrays referenzieren (selbst wenn diese inhaltsgleich wären). Die größere Baustelle ist aber Evolution.
 

mrBrown

Super-Moderator
Mitarbeiter
Ich halte da allgemein die Verwendung des Arrays für falsch...Da bietet sich doch wunderbar die Nutzung eines passenden Objekts an

BTW: Warum die ganzen if-else, wenn eh in jedem das gleiche passiert?
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
Ü Arrays vergleichen Allgemeine Java-Themen 59
Ü Methoden Arrays vergleichen - Methode Allgemeine Java-Themen 1
Ü Eurobeträge in möglichst wenig Scheine/Münzen zerlegen (2D-Arrays) Allgemeine Java-Themen 27
Buroto Arrays generator Allgemeine Java-Themen 10
B Arrays von Methoden möglich? Allgemeine Java-Themen 44
rosima26 Bester Sortieralgorithmus für kurze Arrays Allgemeine Java-Themen 40
B Lottospiel, genug Reihen tippen für 3 Richtige (Spaß mit Arrays)? Allgemeine Java-Themen 46
Muatasem Hammud Erstellung von Testdaten für Arrays Allgemeine Java-Themen 6
Junger_Basileus Attribute, Arrays, Schleifen Allgemeine Java-Themen 9
P Generics und Arrays Allgemeine Java-Themen 6
O Arrays an DOCX-Stamper Library übergeben Allgemeine Java-Themen 1
L ArrayList mit String Arrays in ein Array umwandeln Allgemeine Java-Themen 1
R Zeilen eines 2d Arrays abwechselnd links und rechts mit Nullen auffüllen Allgemeine Java-Themen 14
R Spalten/Zeilen verschieben in zweidimensionalen Arrays? Allgemeine Java-Themen 3
kodela Inhalt eines Arrays ändert sich mysteriös Allgemeine Java-Themen 2
W Spaß mit Arrays Allgemeine Java-Themen 1
W Reflexion und Arrays Allgemeine Java-Themen 7
S Problem mit Arrays Allgemeine Java-Themen 1
D Erste Schritte Arrays vergleichen und die zahlen die nur einmal vorkommen ausgeben Allgemeine Java-Themen 5
J int Werte in einer anderen Klasse in Arrays speichern Allgemeine Java-Themen 3
Neoline Interpreter-Fehler Probleme mit Arrays.toString Allgemeine Java-Themen 7
H Zweidimensionale Arrays Allgemeine Java-Themen 6
Neoline Methoden Zwei Arrays abwechselnd zusammenführen Allgemeine Java-Themen 15
J Methoden clone(), arraycopy(): ein- und zweidimensionale Arrays Allgemeine Java-Themen 8
D Übereinstimmungen in Arrays Allgemeine Java-Themen 5
B Arrays mit Text und Zahlen füllen Allgemeine Java-Themen 3
B Spalten eines 2d-Arrays Allgemeine Java-Themen 2
N 2 Arrays abwechselnd verbinden Allgemeine Java-Themen 13
J private and arrays Allgemeine Java-Themen 2
T Alle Kombinationen aus zwei Arrays Allgemeine Java-Themen 8
RalleYTN Datentypen Herausfinden ob Object ein Array ist ohne den Typen des Arrays zu kennen? Allgemeine Java-Themen 12
R Rückgabe eines Arrays durch Funktion Allgemeine Java-Themen 9
H Datentypen Typ eines Arrays überprüfen Allgemeine Java-Themen 9
C Zweidimensionale Arrays - Quadratisch? Allgemeine Java-Themen 4
AssELAss Zwei Arrays / ArrayLists inhaltlich vergleichen Allgemeine Java-Themen 2
A Lineare Interpolation mit zwei Arrays Allgemeine Java-Themen 4
S Datentypen Warum ist bei Arrays die Länge als Property aufrufbar? Allgemeine Java-Themen 1
Dechasa Vergleichen von zwei Arrays Allgemeine Java-Themen 4
DanielsLPecke Java Arrays an andere Java Programme schicken und zurück Allgemeine Java-Themen 5
H Arrays Allgemeine Java-Themen 4
J NullPointerExeption bei Inizialisierung eines Arrays Allgemeine Java-Themen 3
D Größe der Zahlenkombinationen eines Arrays begrenzen Allgemeine Java-Themen 3
B automatisch benannte arrays erstellen Allgemeine Java-Themen 9
Y inhalte aus 2 unterschiedlichen Arrays miteinander vergleichen Allgemeine Java-Themen 12
M Arrays.sort Problem Allgemeine Java-Themen 2
F Arrays Allgemeine Java-Themen 2
F Arrays Allgemeine Java-Themen 4
N Werte aus Arrays auslesen funktioniert nicht Allgemeine Java-Themen 5
F mehrdimensionale Arrays Allgemeine Java-Themen 4
A Methoden Generische Methode mit Arrays - Source Compatibility 1.7 benötigt, wieso? Allgemeine Java-Themen 3
S Java Problem bei der Rückgabe eines Arrays Allgemeine Java-Themen 19
I Verschiedene Arrays auslesen Allgemeine Java-Themen 6
R Wie kann man diese Methoden in arrays etablieren? Allgemeine Java-Themen 8
C Best Practice [Arrays] Wie sinnvoll prüfen, ob Array primitive Datentypen enthält? Allgemeine Java-Themen 6
C Best Practice Tiefe Kopie eines Arrays unbekannter Dimension und unbekannten Typs Allgemeine Java-Themen 4
R kann man irgendwie mit Arrays mit Eingabefenstern und Schleifen Werte abklappern? Allgemeine Java-Themen 2
R Was los mit dieser Aufgabe? Arrays mit Schachbrettmustern? Allgemeine Java-Themen 10
M Eingabe von Arrays geht über gewünschte Anzahl hinaus Allgemeine Java-Themen 2
K Methoden Arrays auf true Werte prüfen Allgemeine Java-Themen 4
T String Arrays aus den Argumenten auslesen Allgemeine Java-Themen 3
E ArrayIndexOutOfBounds - mehrdimensionale Arrays Allgemeine Java-Themen 6
D Arrays überschreiben sich Allgemeine Java-Themen 2
C Klonen von Arrays/ Matrizenrechnung Allgemeine Java-Themen 2
K Mehrere Arrays auf einmal erstellen Allgemeine Java-Themen 2
P Arrays erzeugen Allgemeine Java-Themen 5
R ListIterator über mehrere Arrays Allgemeine Java-Themen 13
S Variablen Dynamische Arrays Allgemeine Java-Themen 2
O Variablen System.getenv: Sinnlose Werte, Arrays?! Allgemeine Java-Themen 6
C Arrays.asList() - Problem Allgemeine Java-Themen 3
M problem mit speicherbedarf von arrays Allgemeine Java-Themen 14
B Generics und primitve arrays Allgemeine Java-Themen 6
V Umbennen von Arrays Allgemeine Java-Themen 7
M Einfluss von Caching auf die Performance (große Arrays) Allgemeine Java-Themen 24
A Frage zu Arrays Allgemeine Java-Themen 6
S Werte aus 2 eindimensionale boolean arrays mithilfe von logischen operatoren berechnen Allgemeine Java-Themen 6
R Methoden Rückgabe Arrays aufangen Allgemeine Java-Themen 29
T Arrays erstellen Allgemeine Java-Themen 3
C Zwei Arrays vereinen Allgemeine Java-Themen 3
J Array Sortierung auf andere Arrays anwenden Allgemeine Java-Themen 6
D Vertauschen von arrays vom Typ String Allgemeine Java-Themen 2
BattleMaster246 Arrays funktionieren nicht Allgemeine Java-Themen 6
S "Arrays" mit String-Key? Allgemeine Java-Themen 3
L verkettete Listen oder Arrays + Indexlisten effizienter? Allgemeine Java-Themen 3
S Überprüfung/Parsen eines Byte-Arrays Allgemeine Java-Themen 9
Developer_X Aus Datei in Arrays laden-Problem Allgemeine Java-Themen 5
O Problem beim Ausgeben von Arrays Allgemeine Java-Themen 9
G Arrays.toString Allgemeine Java-Themen 4
S to string mit arrays Allgemeine Java-Themen 10
S Objekte mit Arrays Allgemeine Java-Themen 9
Meldanor Mehrdimensionale Arrays : Zugriff auf n-tes Array Allgemeine Java-Themen 5
K Arrays.asList und primitive Typen Allgemeine Java-Themen 2
P Beschreibung eines Arrays Allgemeine Java-Themen 3
S Rücklieferung eines String-Arrays über Methode? Allgemeine Java-Themen 3
lacco Speicherverbrauch von Arrays Allgemeine Java-Themen 2
J Mit mehrdimensionalen Integer-Arrays arbeiten Allgemeine Java-Themen 17
knuckles12 null pointer exception bei arrays Allgemeine Java-Themen 6
H2SO3- dynamisches anlegen der dimensionaltität eines arrays Allgemeine Java-Themen 6
G Arrays von Klassen initialisieren Allgemeine Java-Themen 13
D Felder (Arrays) Allgemeine Java-Themen 4
C Arrays Allgemeine Java-Themen 20

Ähnliche Java Themen

Neue Themen


Oben