Hallo, ich habe folgende Aufgabe bekommen: Schreiben Sie eine Methode calcIntersection, welche zwei Arrays von Strings als Parameter erhält. Das erste Array enthält Namen (bspw. von Teilnehmenden eines Konzertes), das zweite Array ebenfalls Namen (bspw. von Personen die im Fanshop bestellt haben). Geben Sie ein String-Array zurück, mit allen Namen in der Reihenfolge wie im ersten Array, die in beiden Listen vorkommen (bspw. weil diese Personen einen Rabatt erhalten würden). Sollte es keine Übereinstimmungen geben, geben Sie ein leeres Array zurück.
Nun habe ich folgenden Code geschrieben:
ich habe hier nun das Problem, dass ich eine ArrayOutOfBoundsException bekomme. Kann mir vielleicht jemand helfen?
Die Beispiele die ich ausprobiert habe sind:
Nun habe ich folgenden Code geschrieben:
Java:
public static String[] calcIntersection(String[] participants, String[] shopCustomers){
int counter = 0;
String[] neuerString = new String[counter];
if (participants.length == 0 || shopCustomers.length == 0) return new String[0];
for (int i = 0; i < participants.length; i++) {
for (int j = 0; j < shopCustomers.length; j++) {
if (participants[i].equals(shopCustomers[j])) {
counter++;
neuerString[i] = participants[i];
} else {
continue;
}
}
}
return neuerString;
}
Die Beispiele die ich ausprobiert habe sind:
Code:
System.out.println(Arrays.deepToString(calcIntersection(new String[] {}, new String[] {})));
System.out.println(Arrays.deepToString(calcIntersection(new String[] { "Leonie", "Christian" }, new String[] { "Emir", "Leonie" })));
System.out.println(Arrays.deepToString(calcIntersection(new String[] { "Leonie", "Christian", "Tamara", "Sophie", "Ben", "Emre" }, new String[] { "Ben", "Aurelie", "Tamara" })));