Hallo erst mal.
Da ich gerade an nem Beleg für Java arbeite und so ziemlich auf dem Schlauch stehe, dachte ich mir ich suche mir mal etwas Hilfe. Vielleicht hat ja jemand ne Idee wie ich weiter machen kann.
Hier die Aufgabe:
Eingetragen werden die Assiziationen bei mir in eine HashMap, die als Key den ersten Begriff und als Wert eine LinkedListe mit dazugehörigen Assoziationen (2.Begriffe) hat.
Hier mal der Quellcode:
Ich habe nun keine Ahnung wie ich anzahlAssoziierterBegriffe(String, Int) programmieren soll.
Ich weis es ist viel Text. Ich hoffe irgend jemand macht sich die Mühe ihn mal durch zu lesen und kann mir dann im Anschluss nen hilfreichen Tipp geben. Sitze jetzt schon 4h davor und habe mehrere Möglichkeiten versucht aber keine hat so wirklich zum gewünschten Ergebnis geführt.
Vielleicht habe ich mich ja schon im Ansatz selber ausgeschaltet?
Ich danke schon mal für die Antworten.
Da ich gerade an nem Beleg für Java arbeite und so ziemlich auf dem Schlauch stehe, dachte ich mir ich suche mir mal etwas Hilfe. Vielleicht hat ja jemand ne Idee wie ich weiter machen kann.
Hier die Aufgabe:
Die Klasse Assoziationen soll eine Menge von paarweisen Assoziationen speichern. Diese können jeweils mit der Methode
assoziationEintragen("Begriff1", "Begriff2");
eingetragen werden. Dabei führt ”Begriff1“ zu ”Begriff2“ (”Begriff1“ ! ”Begriff2“).
Es können zu einem Begriff mehrere Zeichenketten als zweiter Begriff eingetragen werden.
Im Weiteren sind wir vor allem an Assoziationsketten interessiert.
Wenn wir einen Satz an Assoziationen haben, können wir zu einem Ausgangsbegriff die Menge an Begriffen bestimmen,
die direkt mit dem ersten Begriff assoziiert sind. Wenn man zu jedem dieser Begriffe wieder die Assoziationen bestimmt, erhält man
die Menge der über einen Zwischenbegriff assoziierten Begriffe. Etc.
Zu diesen Menge interessiert uns die Anzahl der enthaltenen Begriffe:
anzahlAssoziierteBegriffe("Begriff", 1) // direkt assoziiert
anzahlAssoziierteBegriffe("Begriff", 2) // ueber Zwischenbegriff assoziiert
Und wir wollen auch für Begriffe überprüfen, ob sie in diese Menge enthalten sind:
istAssoziierterBegriff("Begriff1", 1, "Begriff2")
Beispiel:
Assoziationen assoz = new Assoziationen();
assoz.assoziationEintragen("Afrika", "Loewe");
assoz.assoziationEintragen("Afrika", "Elefant");
assoz.assoziationEintragen("Asien", "Elefant");
assoz.assoziationEintragen("Loewe", "Zoo");
assoz.assoziationEintragen("Elefant", "Zoo");
assoz.assoziationEintragen("Elefant", "Arbeitstier");
assoz.assoziationEintragen("Loewe", "Simba");
assoz.anzahlAssoziierteBegriffe("Afrika", 1)
Ergebnis: 2, weil die Menge fLoewe; Elefantg ist.
assoz.istAssoziierterBegriff("Afrika", 1, "Loewe")
Ergebnis: true
assoz.istAssoziierterBegriff("Afrika", 1, "Afrika")
Ergebnis: false
assoz.anzahlAssoziierteBegriffe("Asien", 1))
Ergebnis: 1, weil die Menge fElefantg ist.
assoz.anzahlAssoziierteBegriffe("Afrika", 2)
Ergebnis: 3, weil die Menge fArbeitstier; Simba; Zoog ist.
assoz.istAssoziierterBegriff("Afrika", 2, "Loewe")
Ergebnis: false
assoz.istAssoziierterBegriff("Afrika", 2, "Zoo")
Ergebnis: true
assoz.anzahlAssoziierteBegriffe("Afrika", 3)
Ergebnis: 0, weil die Menge ; ist.
Eingetragen werden die Assiziationen bei mir in eine HashMap, die als Key den ersten Begriff und als Wert eine LinkedListe mit dazugehörigen Assoziationen (2.Begriffe) hat.
Hier mal der Quellcode:
Java:
package belegdrei;
import java.util.*;
public class Assoziationen implements IAssoziationen {
List<String> liste = new LinkedList<String>();
Map<String, List> hm = new HashMap<String, List>();
/* Der Speicher fuer die Assoziationen wird initisiert */
public Assoziationen() {
}
/*
* Es wird ein Assoziationspaar eingetragen.
* Der Begriff *von* fuehrt zum Begriff *nach*
*/
public void assoziationEintragen(String von, String nach) {
if(hm.get(von)==null)
{
liste=new LinkedList();
}
else
{
liste=hm.get(von);
}
liste.add(nach);
hm.put(von, liste);
System.out.println(von+" "+liste);
}
Ich habe nun keine Ahnung wie ich anzahlAssoziierterBegriffe(String, Int) programmieren soll.
Ich weis es ist viel Text. Ich hoffe irgend jemand macht sich die Mühe ihn mal durch zu lesen und kann mir dann im Anschluss nen hilfreichen Tipp geben. Sitze jetzt schon 4h davor und habe mehrere Möglichkeiten versucht aber keine hat so wirklich zum gewünschten Ergebnis geführt.
Vielleicht habe ich mich ja schon im Ansatz selber ausgeschaltet?
Ich danke schon mal für die Antworten.