Gemeinsame Objekte in LinkedList

Status
Nicht offen für weitere Antworten.

mamelinchen

Bekanntes Mitglied
Ich habe zwei Listen gleichen Typs,
die eine beinhaltet alle Objekte, die andere nur drei davon.


LinkedList <Hunde> 3 Liste vom Käufer
LinkedList <Hunde> alle Hundeladen

Die Objekte haben einen String namen und einen String besitzer.

Nun möchte ich prüfen , wenn die 3 Hunde namentlich mit den aus der ganzen Truppe übereinstimmen, sollen die aus der Truppe mitgenommen werden.

Wie mach ich das?

Habs miner for each -Schleife teilweise probiert und equals.

Mir fehlt noch aber das Entscheidende.Weiss jemand was ich mein?
 
Wenn sich's tatsächlich um die selben Hunde-Objekte handelt sollte equals funktionieren. Ansonsten: woran lässt sich so ein Hund eindeutig identifiezieren am Namen oder Namen und Besitzer??
Bisschen Code wäre auch nicht schlecht.
 
Nun möchte ich prüfen , wenn die 3 Hunde namentlich mit den aus der ganzen Truppe übereinstimmen, sollen die aus der Truppe mitgenommen werden.
oh das richt schon nach fehlerquelle....

warum hast du 2 listen ? was war dein ansatz bisher ? jo... code und genaure Absicht waere gut...
 
Code:
public LinkedList<Hund>alleHunde;
public String käufer;


public synchronized void HundAngefordert(String besitzer,LinkedList<Hund> hunde) {
		for (Hund hund : hunde) {
                     if (hund.name.equals[COLOR="Red"](alleHunde1.....name)[/COLOR]{?????????
			if (!hund.istFrei()) {
				break;
			} else {
				synchronized (hund) {
				hund.herrchen = besitzer;
				}
			}
                     }
		}
		käufer = besitzer;
		System.out.println("Käufer : "+ käufer);
	}

Halt der Käufer gibt dem Geschäft ne Liste mit Hunden, und wenn die im Geschäft vorhanden sind, ABER NUR ALLE, sollen die aus dem Geschäft synchronized werden.
 
warum haelt sich der "shop" nicht eine Map die z.b. Name auf Hund mappt ?
 
dann brauchst du 2 schleifen...

fuer jeden Hund aus dem "shop" musst du ueber alle Hunde aus der uebergebenen Liste laufen und die Hunde vergleichen (z.b. ueber namen)... wenn sie gleich sind haste deinen Hund
 
Code:
public synchronized void WerkzeugAngefordert(String käufer,LinkedList<Hund> hundKäufer) {
		for (Hund hundAlle : hundeshop) {
			for (Hund hund : hundKäufer)
				if (hundAlle.name.equals(hund.name)) {
					if (!hundAlle.istFrei()) {
						break;
					} else {
						synchronized (hundAlle) {
							hundAlle.besitzer = käufer;
						}
					}
				}
		}


So richtig?
 
keine ahnung - teste es...

break bricht aber nur die innere Schleife - ist das noch so gewollt ?
 
Da wa rich mir noch nich so sicher...
Der Besitzer ist ein Thread, wenn dieser einen Hund aus seiner Liste nicht bekommt, soll er warten.

Hmmm, keine Ahnung wie.Ich wollte ja die gesamte Funktion abbrechen, aber das ist totaler Quatsch.Er soll nur warten bis der Hund frei ist.

Aber nicht mit wait().
Ich soll nur richtig synchronisieren.

An welcher Stelle?
Man findet immer Fehler^^
 
Status
Nicht offen für weitere Antworten.

Neue Themen


Zurück
Oben