Die Letzte Nachricht, ja. Die ist aber fehlerhaftIst das jetzt deine selbst erarbeitete Lösung?
Merk ich mir für's nächste mal. Das wird nur ein kleiner Fehler/ Denkfehler sein. Wäre nett wenn du mit weiterhelfen könntestKönntest du bitte deinen Code in Code-Tags setzen, anstatt immer Screenshots einzufügen?
Merk ich mir für's nächste mal. Das wird nur ein kleiner Fehler/ Denkfehler sein. Wäre nett wenn du mit weiterhelfen könntest
Und wieso hat eine solche Lösung längst nicht schon jemand vorgeschlagen? Versteh ich nicht.Das klappt bestimmt mit Streams...
public static boolean includes(int[] arr1, int[] arr2) {
return IntStream.of(arr1).allMatch(i -> IntStream.of(arr2).anyMatch(j -> i == j));
}
Einfach schrecklich.IntStream.of(arr1).allMatch(i -> IntStream.of(arr2).anyMatch(j -> i == j));
public static boolean includes(int[] arr1, int[] arr2) {
return IntStream.of(arr1).allMatch(i -> IntStream.of(arr2).anyMatch(j -> i == j));
}
Aus meiner Sicht zwei Gründe:Zum anderen finde ich jedoch die Lesbarkeit unter aller Kanone
Ich muss einen Index i weiter gehen und nochmal vergleichen, ob dieser Wert arr im arr2 enthalten ist. Wie genau implementiere ich das nun? Muss die return anweisung wo anders hin?Welchen Editor verwendest Du? Was muss denn geschehen, wenn ein gesuchtes Element vorkommt, weitersuchen?
private static boolean contains(int v, int[] arr) {
for (int i = 0; i < arr.length; i++)
if (arr[i] == v)
return true;
return false;
}
public static boolean contains(int[] arr1, int[] arr2) {
for (int i = 0; i < arr1.length; i++)
if (!contains(arr1[i], arr2))
return false;
return true;
}
Vielen Dank! Habe die Implementierung genauso. Damit wäre die Aufgabe ja gelöst Ich ging erst davon aus, dass die Aufgabe ausschließlich mit einer Methode gelöst werden soll. Aber so sollte es auch gehen. LGZerteile das Problem vielleicht erstmal in Teilprobleme:
1. Teilproblem: Prüfen, ob ein Array genau ein Element enthält: `boolean contains(int value, int[] array)`
2. Teilproblem: Prüfen, ob alle Werte in array1 auch in array2 sind: `boolean contains(int[] array1, int[] array2)`. Hier benutzt du die Lösung von 1.
Java:private static boolean contains(int v, int[] arr) { for (int i = 0; i < arr.length; i++) if (arr[i] == v) return true; return false; } public static boolean contains(int[] arr1, int[] arr2) { for (int i = 0; i < arr1.length; i++) if (!contains(arr1[i], arr2)) return false; return true; }