Re: Objekt Identität
- From: Stephan Keil <Stephan.Keil@xxxxxx>
- Date: Sun, 22 Jan 2006 22:23:40 +0100
Stephan, ich verstehe nicht, /wonach/ du in einer Liste binär suchen willst. Dieser Suchwert muss ja auch eindeutig sein. Wenn du also einen Wert als Suchkriterium "irgendwo" her hast, dann kannst du /stattdessen/ auch gleich die Objektreferenz verwenden und musst auch nicht mehr suchen. Sehe ich das falsch?
Das ist z.B. sinnvoll, wenn ich einen Objekt-Graphen traversiere und Zyklen vermeiden möchte. Nachdem ich einen Knoten im Graphen (= ein Objekt) verarbeitet habe, füge ich ihn in den Container ein. Dann verfolge ich die Kanten des Graphen (= verbundene Objekte) und checke für jeden Knoten zuerst, ob ich ihn schon besucht habe, indem ich im Container nachschaue. Wenn der Container nach Objekt-Identität sortiert ist, ist dieser Check effizient.
Ein typischer Algorithmus, der so vor gehen könnte, wäre z.B. Objektserialisierung (btw.: wie funktioniert die effizient in .NET? hilft das Framework da mit? z.B. mit Objektmarkierung? oder erkennt die keine Zyklen?).
In Pseudo-Code z.B.
class Knoten { ... };
class Prozessor {
IdentityContainer m_processed; // besuchte Knoten merken (Identität)
public:
// ...
void Process(Knoten y) {
if (m_processed.HasObject(y)) { // effizient oder nicht?
return; // Knoten schon bearbeitet
}
// ... bearbeite y ...
m_processed.Insert(y); // y merken
foreach c in y.Connected() { Process(c); }
}
};- Stephan .
- Follow-Ups:
- Re: Objekt Identität
- From: Armin Zingler
- Re: Objekt Identität
- References:
- Objekt Identität
- From: Stephan Keil
- Re: Objekt Identität
- From: Herfried K. Wagner [MVP]
- Re: Objekt Identität
- From: Stephan Keil
- Re: Objekt Identität
- From: Herfried K. Wagner [MVP]
- Re: Objekt Identität
- From: Armin Zingler
- Objekt Identität
- Prev by Date: Re: Objekt Identität
- Next by Date: Re: Objekt Identität
- Previous by thread: Re: Objekt Identität
- Next by thread: Re: Objekt Identität
- Index(es):
Relevant Pages
|
Loading