2017-04-22 9 views
1

Guten Abend,Count Kurs in einem Array

Ich versuche herauszufinden, ob es möglich ist, in einem Array bestimmte Kurse zu zählen. Hier ist mein Beispiel unten.

Beispiel:

list.add(new Student(" Bourne", "70","\tCOP2250, ENC3250, COP3530")); 
list.add(new Student(" Gracia", "50","\tCOP2250, COP3250, COP4250")); 


Output: 

COP2250 - 2 
COP3530 - 1 
ENC3250 - 1 

Der Ausgang sollte wie oben sein. Lassen Sie es mich wissen, wenn es möglich ist, dies zu tun, oder ich würde Kurse allein sortieren müssen.

Vielen Dank im Voraus für jede Unterstützung.

+0

Es ist sehr viel möglich. Es gibt einige Möglichkeiten, dies zu tun ... Ich erinnere mich nicht viel Java, aber in C++ TL: DR; Sie könnten einen Vektor von Paaren erstellen. Jedes Paar wäre ein String-Name des Kurses und ein Zählwert. Schleifen Sie dann die Kurse, durchlaufen Sie den Vektor, um zu sehen, ob sein Paar existiert, wenn dem so ist, addieren Sie 1 zur Zählung, wenn nicht, erstellen Sie ein Paar und push_back zum Vektor. Am Ende können Sie den Vektor durchlaufen, der für jeden einzelnen Kurs zählt. Das ist ziemlich verwirrend und wahrscheinlich viel einfacher in Java, wie es @ user7790438 vorgeschlagen hat. –

+0

Haben Sie eine Liste aller möglichen Kurse? – Hannes

+0

versuchen Sie es mit diesem int count = Collections.frequency (Arrays.asList (array), your_stufrn_with_your_course); –

Antwort

1

Man könnte so etwas wie folgt verwenden:

Map<String, Integer> cources = new HashMap<>(); 
for (Student s : list) { 
    //I assumed that eg. "\tCOP2250, ENC3250, COP3530" is in a (public) variable Cources 
    //in your Student class. You can replace this by a getter or whatever you need. 
    for (String name : s.Courses.replace("\t", "").split(", ")) { 
     if (cources.containsKey(name)) 
      cources.replace(name, cources.get(name)+1); 
     else 
      cources.put(name, 1); 
    } 
} 
//some output for testing 
cources.forEach((a, b) -> System.out.println(a + " - " + b)); 
+0

Das war es! Alter, du bist ein Lebensretter. Ich hatte eine Idee über HashMap, wusste aber nicht einmal, wo ich anfangen soll. Vielen Dank, eine tolle Nacht! – Mario