2 Arrays vergleichen

Joptionpane

Aktives Mitglied
Abend an alle,

bin wieder am üben für die Prüfungen und hänge an einer Aufgabe.
es soll geprüfut werden, ob die zwei Felder feld1 und feld2 die gleiche Größe und den gleichen Inhalt haben (d.h. die gleichen Werte an den gleichen Positionen).
Ich wollts jetzt erstmal soweit haben, das erst überprüfut wird, wo gleiche werte auftauchen(die länge der arrays hab ich mal gleichgroß gesetzt und ist momentan für mich zweitrangig).

Mein Ansatz wäre dieser. Komme mit bool'schen Methoden nicht gut klar..

Java:
public static void main(String[] args) {

		double[] array1 = { 14.0, 16.0, 19.0, 12.0, 16.0, 5.0, 18.0, 9.0, 3.0,
				5.0 };

		double[] array2 = { 12.0, 11.0, 19.0, 2.0, 6.0, 15.0, 3.0, 9.0, 1.0,
				15.0 };

		sindGleich(array1, array2);

		System.out.print(sindGleich);

	}

	public static boolean sindGleich(double[] array1, double[] array2) {

		for (int i = 0; i <= array1.length - 1; i++) {
			for (int j = 0; j <= array2.length - 1; j++) {

				if (array1[i] == array2[j]) {
					return true;

				} 
				
			}
		}
		return false;

	}

}
 

HimBromBeere

Top Contributor
Die Idee ist schonmal jut, allerdings solltest du nicht sofort nach dem ersten Array-Element gleich true zurückgebe, sondern erst, wenn alle durchlaufen sind, also hinter die Doppelschleife. Bis dahin ist der return-Wert erstmal false.

EDIT: Bevor du dir allerdings die Mühe des Durchlaufs machst, solltest du UAF JEDEN FALL die Größen vergleichen, um nicht unnötigerwiese zwei Array zu durchlaufen, die 10000 Elemente beinhalten...

Dafür musst du nur prüfen: arr1.length == arr2.length
 

Joptionpane

Aktives Mitglied
Wäre dieser Ansatz dann besser?




Java:
public static void main(String[] args) {

		double[] array1 = { 14.0, 16.0, 19.0, 12.0, 16.0, 5.0, 18.0, 9.0, 3.0,
				5.0 };

		double[] array2 = { 12.0, 11.0, 19.0, 2.0, 6.0, 15.0, 3.0, 9.0, 1.0,
				15.0 };

		sindGleich(array1, array2);

		System.out.print(sindGleich);

	}

	public static boolean sindGleich(double[] array1, double[] array2) {

		for (int i = 0; i <= array1.length - 1; i++) {
			for (int j = 0; j <= array2.length - 1; j++) {

				if (array1[i] != array2[j]) {
					return false;
				} 
				
			}
		}
		return true;

	}

}
 

Joptionpane

Aktives Mitglied
lass es laufen dann siehst du es?!



ist mir klar das es momentan noch nicht laufen wird, habe darum extra bei meinem ersten Post angegeben, dass ich so meine schwächen mit bool'schen Methoden habe.

Da die Methode nur true oder false ausliefert kann es nicht einfach ein S.o.p machen, das weiß ich zumindest, aber wie krieg ich es nun hin, dass es mir die gewünschten Zahlen ausgibt?
 
G

Gast2

Gast
Du kannst dir nen boolean ganz normal ausgeben lassen:
Java:
System.out.print(sindGleich(array1, array2));

Was für Zahlen willst du ausgeben lassen? Du prüfst doch nur ob zwei Arrays gleich sind.
 

HimBromBeere

Top Contributor
Du rufst zwar sindGleich() auf, aber verwirfst das Ergebnis vollständig. Du müsstest in in einer Variablen speichern oder direkt in die System.out.print() reinschreiben
 

Joptionpane

Aktives Mitglied
läuft, hatte die Aufgabenstellung falsch verstanden.
Soll nur true oder false ausgegeben werden, wenn array1 4 einträge hat und das andere 5 brauch ich garnicht den Inhalt mehr zu vergleichen und falls doch gleich lang müssen 'alle' Werte identisch sein.

Wäre theoretisch jetzt richtig wenn es so verlangt wäre.

Würde es mit dieser bool'schen Methode aber gehen falls als Frage wäre: Es sollen alle Zahlen ausgegeben werden, die an gleicher Position den gleichen Wert haben(wie in meinem Code die 19.0 an dritter stelle z.b.) ?
 

Joptionpane

Aktives Mitglied
Die eigentliche Aufgabe müsste damit gelöst worden sein.


Java:
public static void main(String[] args) {

		double[] array1 = { 14.0, 16.0, 19.0, 12.0, 16.0, 5.0, 18.0, 9.0, 3.0,
				5.0 };

		double[] array2 = { 12.0, 11.0, 19.0, 2.0, 6.0, 15.0, 3.0, 9.0, 1.0,
				15.0 };

		sindGleich(array1, array2);

		System.out.print(sindGleich(array1, array2));

	}

	public static boolean sindGleich(double[] array1, double[] array2) {

		if (array1.length != array2.length) {
			return false;
		} else {

			for (int i = 0; i <= array1.length - 1; i++) {
				if (array1[i] != array2[i]) {
					return false;
				}

			}
		}
		return true;
	}
}
 

Schrubber

Bekanntes Mitglied
Java:
  sindGleich(array1, array2);
 
        System.out.print(sindGleich(array1, array2));

Die 1. Zeile kannste weglassen.

Du führst einmal deine Methode aus (1. Zeile), verarbeitest das Ergebnis nicht. Du rufst dann in der 2. Zeile die Methode erneut auf und nimmst dann erst das Ergebnis als Ausgabe.


Uuuund: Deine Methode gibt IMMER false zurück (bei den Werten, die du vorgibst). Nur der letzte Wert ist ausschlag-gebend. Sind alle vorher gleich, nur der letzte anders, ist es false.

Und du kannst es vll ein wenig kürzer gestalten:

Java:
public static boolean sindGleich(double[] array1, double[] array2) {
        boolean gleich = false;
        if(array1.length == array2.length) {
                for(int i = 0; i < array1.length; i++) {
                        if(array1[i] == array2[i]) {
                                gleich = true;
                        } else {
                                gleich = false;
                        }
                }
        }
        return gleich;
}
 
Zuletzt bearbeitet:

Joptionpane

Aktives Mitglied
Zeile 9 hab ich bereits rausgenommen gehabt, hat mir ein Kommilitone ebenfalls empfhohlen, hat ich übersehen :D danke an alle :))

hab jetzt mal alles, müsste soweit stimmen, auch von der Effizienz her(teilweise):

Java:
public static void main(String[] args) {

		double[] array1 = { 14.0, 16.0, 19.0, 12.0, 16.0, 5.0, 18.0, 9.0, 3.0,
				5.0 };

		double[] array2 = { 12.0, 11.0, 19.0, 2.0, 6.0, 15.0, 3.0, 9.0, 1.0,
				15.0 };

		
		System.out.print(sindGleich(array1, array2));

	}

	public static boolean sindGleich(double[] array1, double[] array2) {

		if (array1.length != array2.length) {
			return false;
		} else {

			for (int i = 0; i <= array1.length - 1; i++) {
				if (array1[i] != array2[i]) {
					return false;
					
				}
				break;

			}
		}
		return true;
	}
}
 

faetzminator

Gesperrter Benutzer
Das geht immer noch einfacher. Das else ist unnötig. Ebenso das break. Zusätzlich rechnest du [c]<= length - 1[/c] statt [c]< length[/c].
Diese Dinge wegoptimiert, gehts eigentlich nicht mehr einfacher:
Java:
if (array1.length != array2.length) {
    return false;
}
for (int i = 0; i < array1.length; i++) {
    if (array1[i] != array2[i]) {
        return false;
    }
}
return true;
 
Ähnliche Java Themen
  Titel Forum Antworten Datum
E Arrays in einer ArrayList miteinander vergleichen Java Basics - Anfänger-Themen 12
B bei 2 Arrays Anzahl gleicher Elemente vergleichen? Java Basics - Anfänger-Themen 49
ArrayList mit unbekannter Menge an Arrays die Arrays vergleichen Java Basics - Anfänger-Themen 9
Bademeister007 Elemente aus zwei verschiedenen Arrays miteinander vergleichen und gegeben falls entfernen Java Basics - Anfänger-Themen 14
R Werte und Reihenfolge in 2d Arrays vergleichen Java Basics - Anfänger-Themen 5
N 2D Arrays jedes xy vergleichen Java Basics - Anfänger-Themen 7
J zwei String Arrays miteinander vergleichen Java Basics - Anfänger-Themen 18
F Eine Zahl mit Arrays vergleichen Java Basics - Anfänger-Themen 7
A Methoden Char-Arrays auf aufeinanderfolgende Elemente vergleichen! Java Basics - Anfänger-Themen 7
J 2 Arrays vergleichen (Unterschiedliche Längen) Java Basics - Anfänger-Themen 42
Shizmo Arrays miteinander vergleichen Java Basics - Anfänger-Themen 22
D Erste Schritte Arrays vergleichen Java Basics - Anfänger-Themen 1
R 2 mit Arrays bestückte LinkedLists durchsuchen/vergleichen Java Basics - Anfänger-Themen 3
J arrays vergleichen Java Basics - Anfänger-Themen 6
1 Zeichenfolgen in Arrays vergleichen Java Basics - Anfänger-Themen 8
1 Elemente von 2 Arrays vergleichen Java Basics - Anfänger-Themen 12
D Arrays vergleichen Java Basics - Anfänger-Themen 4
D Methoden Arrays vergleichen Java Basics - Anfänger-Themen 10
N Arrays miteinander vergleichen Java Basics - Anfänger-Themen 11
J Inhalt eines Arrays vergleichen? Java Basics - Anfänger-Themen 8
Fab1 char Arrays vergleichen Java Basics - Anfänger-Themen 4
R Erste Schritte Arrays vergleichen und boolean Java Basics - Anfänger-Themen 5
E Elemente innerhalb eines Arrays vergleichen Java Basics - Anfänger-Themen 7
J Dimensionen zweier Arrays vergleichen Java Basics - Anfänger-Themen 4
M 2 Arrays mit komplexen Datentyp vergleichen Java Basics - Anfänger-Themen 8
C Arrays vergleichen und Fehlinhalt ausgeben Java Basics - Anfänger-Themen 5
J Zeilen eines Arrays vergleichen Java Basics - Anfänger-Themen 2
N Arrays als Mengen vergleichen Java Basics - Anfänger-Themen 5
J arrays vergleichen Java Basics - Anfänger-Themen 3
T Arrays vergleichen Java Basics - Anfänger-Themen 5
V Inhalt von arrays vergleichen Java Basics - Anfänger-Themen 6
R String Arrays Inhalte vergleichen Java Basics - Anfänger-Themen 4
M Arrays vergleichen Java Basics - Anfänger-Themen 2
H Mehrdimensionale Arrays vergleichen Java Basics - Anfänger-Themen 6
P arrays vergleichen geht nicht? Java Basics - Anfänger-Themen 3
B Vergleichen von Arrays Java Basics - Anfänger-Themen 3
D Arrays vergleichen (oder wie man das auch nennen will). Java Basics - Anfänger-Themen 13
J Mehrdimensionale Arrays inhaltlich vergleichen. Java Basics - Anfänger-Themen 3
M Felder innerhalb eines Arrays vergleichen Java Basics - Anfänger-Themen 2
N Mischen und vergleichen von Arrays Java Basics - Anfänger-Themen 6
DrahtEck Arrays und While-Loop Java Basics - Anfänger-Themen 14
richis-fragen Kann Arrays.stream() auch auf Objekte angewant werden? Java Basics - Anfänger-Themen 10
Fynx_HD Arrays übergeben, Mehrdimensionale Arrays Zeilenabtrennung in schleifen Java Basics - Anfänger-Themen 8
M Länge eines Arrays als Variable speichern möglich? Java Basics - Anfänger-Themen 14
R Liste und Arrays Java Basics - Anfänger-Themen 12
N mehrdimensionale arrays Java Basics - Anfänger-Themen 12
Kingdako Wie löse ich eine Mathematische Formel mit Arrays und Schleifen? Java Basics - Anfänger-Themen 32
D Wie kann man in Java nach Arrays auf Duplikate prüfen Java Basics - Anfänger-Themen 12
S Hilfe bei Praktischen Aufgaben von Arrays Java Basics - Anfänger-Themen 39
T Objekte mit arrays erstellen Java Basics - Anfänger-Themen 6
M Problem bei verschachtelter for-Schleife bei zweidimensionalen Arrays Java Basics - Anfänger-Themen 3
J Mehrdimensionale Arrays Java Basics - Anfänger-Themen 2
pc pc pc pc pc letztes Element eines Arrays n Java Basics - Anfänger-Themen 3
M Arrays Java Basics - Anfänger-Themen 3
Ostkreuz Wert von Arrays summieren Java Basics - Anfänger-Themen 1
Ostkreuz Summieren von Arrays Java Basics - Anfänger-Themen 4
javaBoon86 Arrays 2 Dimension Werte ausgeben Java Basics - Anfänger-Themen 15
paulen1 Best Practice "Unchecked Assignment" Warnung beim erstellen eines 2D Arrays of Arraylists Java Basics - Anfänger-Themen 2
JustAProgrammer Ein Dreieck mit Arrays erstellen Java Basics - Anfänger-Themen 2
TheSepp Nur Arrays ausgeben, die Werte zugewiesen haben. Java Basics - Anfänger-Themen 4
volcanos Addition -> List<Integer> mit Arrays.asList() versus List<Integer>ArrayList<>() Java Basics - Anfänger-Themen 14
D Arrays an replaceAll-Methode übergeben Java Basics - Anfänger-Themen 12
rosima26 Geordnete Arrays ausgeben Java Basics - Anfänger-Themen 31
D Inhalt eines Arrays ausgeben Java Basics - Anfänger-Themen 7
A Jedes zweite Element eines Arrays entfernen Java Basics - Anfänger-Themen 30
C Zwei Arrays addieren und ausgeben Java Basics - Anfänger-Themen 3
E Zinsrechnung mithilfe von Arrays Java Basics - Anfänger-Themen 12
LePetitChat1 Arrays - NullPointerException? Java Basics - Anfänger-Themen 14
H Arrays: Größten Zahlen Unterschied herausfinden Java Basics - Anfänger-Themen 20
H Arrays befüllen Java Basics - Anfänger-Themen 43
C60 Methoden Main-Methode erkennt meine Arrays nicht. Java Basics - Anfänger-Themen 7
D Arrays Java Basics - Anfänger-Themen 9
C Java Arrays - Ausgabe in Methode Java Basics - Anfänger-Themen 12
R While-Loop der die Einträge eines Arrays in umgekehrter Reihenfolge anzeigt Java Basics - Anfänger-Themen 3
N Arrays Java Basics - Anfänger-Themen 5
W n verschiedene Arrays zufällig ausgeben - mit der Random-Klasse? Java Basics - Anfänger-Themen 8
U zwei 2D arrays auf gleich sein überprüfen Java Basics - Anfänger-Themen 14
melaniemueller Lagerverwaltung erstellen - mehrdimensionale Arrays Java Basics - Anfänger-Themen 62
C initialisieren eines arrays richtiger Größe und mit geeignetem Datentyp Java Basics - Anfänger-Themen 26
A Arrays aufsummieren Java Basics - Anfänger-Themen 11
C Wie 2 Arrays zusammenfügen und sortieren? Java Basics - Anfänger-Themen 11
S Arrays aneinanderketten Java Basics - Anfänger-Themen 20
Sinan Arrays auflisten ohne Wiederholung Java Basics - Anfänger-Themen 28
D Hilfe beim Erzeugen eines Arrays NullPointerException wird ausgelöst Java Basics - Anfänger-Themen 11
D Verschlüsslungsaufgabe / Arrays Java Basics - Anfänger-Themen 6
L Methode für Zweidimensionale Arrays Java Basics - Anfänger-Themen 4
L Methode zum invertieren eines Arrays Java Basics - Anfänger-Themen 7
S zweidimensionale char arrays Java Basics - Anfänger-Themen 14
J Methoden Mehrdimensionale Arrays übereinander legen Java Basics - Anfänger-Themen 5
D Verwirrung bei Streams aus primitiven Arrays Java Basics - Anfänger-Themen 2
P Arrays mit verschiedenen Längen miteinander dividieren. Java Basics - Anfänger-Themen 1
P Wie kann ich die Zahlen dieses Arrays dividieren? Java Basics - Anfänger-Themen 2
J Traveling Salesman Problem [Arrays] Java Basics - Anfänger-Themen 9
M Arrays mit mehreren Werten über JOptionPane initialisieren Java Basics - Anfänger-Themen 12
Kawastori Größe eines Arrays bestimmen Java Basics - Anfänger-Themen 13
Zeppi Arrays[i] Java Basics - Anfänger-Themen 7
Lena_2611 Vergleich von Array1 Index mit Array2 Wert und erzeugen eines neues Arrays Java Basics - Anfänger-Themen 8
J B-Sprache mit Arrays ausführen Java Basics - Anfänger-Themen 18
A Teilarrays eines 2D-Arrays sortieren Java Basics - Anfänger-Themen 4
C Arrays - deklarieren, initialisieren? Ist das ein Objekt? Java Basics - Anfänger-Themen 3

Ähnliche Java Themen

Neue Themen


Oben