Auf Thema antworten

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:

[CODE=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;

   

    }[/CODE]

ich habe hier nun das Problem, dass ich eine ArrayOutOfBoundsException bekomme. Kann mir vielleicht jemand helfen?

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" })));[/CODE]



Oben