Datenstrukturen: Unterschied zwischen den Versionen
Aus Das Sopra Wiki
Keine Bearbeitungszusammenfassung |
|||
| Zeile 165: | Zeile 165: | ||
|} | |} | ||
<h3> zwei-elementige Datenstrukturen </h3> | |||
<p>Alle Datenstrukturen in dieser Liste haben folgendes gemeinsam: | |||
</p><p><br /> | |||
</p> | |||
<ul><li>Keys müssen eindeutig sein. | |||
</li></ul> | |||
<ul><li>Die Add-Methode wirft eine Exception wenn der Key bereits vorhanden ist. | |||
</li></ul> | |||
<ul><li>Die Values können über die <a href="http://msdn.microsoft.com/en-us/library/9tee9ht2.aspx">Item-Property</a> der Datenstruktur angesprochen werden:<br /><span class="fck_mw_source" _fck_mw_customtag="true" _fck_mw_tagname="source" lang="csharp">myDataStructure[key] = expression;</span>Dabei wird ein Wert | |||
</li></ul> | |||
<ul><li><ul><li>wenn der Key bereits vorhanden ist überschrieben | |||
</li></ul> | |||
</li></ul> | |||
<ul><li><ul><li>wenn der Key noch nicht vorhanden ist neu angelegt. | |||
</li></ul> | |||
</li></ul> | |||
<ul><li>Sie implementieren das <a href="http://msdn.microsoft.com/en-us/library/system.collections.idictionary.aspx">IDictionary</a>-Interface. | |||
</li></ul> | |||
<p><br /> | |||
</p><p><br /> | |||
</p> | |||
<table class="default"> | |||
<tr> | |||
<td class="blank"> <br /> | |||
</td><th colspan="6"> Laufzeiten von Methoden | |||
</th><td class="blank"> <br /> | |||
</td></tr> | |||
<tr> | |||
<td class="blank"> <br /> | |||
</td><th> Add | |||
</th><th> Remove | |||
</th><th> ElementAt | |||
</th><th> Contains | |||
</th><th> Clear | |||
</th><th> Count | |||
</th><th> Element-Typ | |||
</th><th> <a href="ThreadSafety">Thread-safe</a> | |||
</th><th> Bemerkungen | |||
</th></tr> | |||
<tr> | |||
<th> <a href="http://msdn.microsoft.com/en-us/library/xfhwa508.aspx">Dictionary<TKey, TValue></a> | |||
</th><td> O(1)<br />O(n) wenn Count + 1 > Capacity<br /> | |||
</td><td> O(1)<br /> | |||
</td><td> <br /> | |||
</td><td> O(1)<br /> | |||
</td><td> <br /> | |||
</td><td> O(1)<br /> | |||
</td><td> <a href="http://msdn.microsoft.com/en-us/library/5tbh8a42.aspx">KeyValuePair<TKey,TValue></a><br /> | |||
</td><td> Nein<br /> | |||
</td><td class="close"> | |||
<p>Verfügt über <a _fcknotitle="true" href="TryGetValue">TryGetValue</a>-Methode<br /> | |||
</p><p><br /> | |||
</p> | |||
</td></tr> | |||
<tr> | |||
<th> <a href="http://msdn.microsoft.com/en-us/library/f7fta44c.aspx">SortedDictionary<TKey, TValue></a> | |||
</th><td> O(log n)<br /> | |||
</td><td> O(log n)<br /> | |||
</td><td> <br /> | |||
</td><td> O(log n)<br /> | |||
</td><td> <br /> | |||
</td><td> <br /> | |||
</td><td> <br /> | |||
</td><td> Nein<br /> | |||
</td><td class="close"> | |||
<p>Verfügt über <a _fcknotitle="true" href="TryGetValue">TryGetValue</a>-Methode | |||
</p><p>schneller als SortedList bei unsortierten Daten<br /> | |||
</p><p><br /> | |||
</p> | |||
</td></tr> | |||
<tr> | |||
<th> <a href="http://msdn.microsoft.com/en-us/library/system.collections.hashtable.aspx">Hashtable</a> | |||
</th><td> <br /> | |||
</td><td> <br /> | |||
</td><td> <br /> | |||
</td><td> <br /> | |||
</td><td> <br /> | |||
</td><td> <br /> | |||
</td><td> <br /> | |||
</td><td> Read-Only mit einem schreibenden Thread<br /> | |||
</td><td class="close"> | |||
<p><br /> | |||
</p><p><br /> | |||
</p> | |||
</td></tr> | |||
<tr> | |||
<th> <a href="http://msdn.microsoft.com/en-us/library/ms132319.aspx">SortedList<TKey, TValue></a> | |||
</th><td> O(n)<br /> | |||
</td><td> O(n)<br /> | |||
</td><td> <br /> | |||
</td><td> O(log n)<br /> | |||
</td><td> <br /> | |||
</td><td> <br /> | |||
</td><td> <br /> | |||
</td><td> Nein | |||
</td><td class="close"> | |||
<p>Verfügt über <a _fcknotitle="true" href="TryGetValue">TryGetValue</a>-Methode | |||
</p><p>schneller als SortedDictionary bei vorsortierten Daten<br /> | |||
</p><p><br /> | |||
</p> | |||
</td></tr></table> | |||
== Referenzen == | == Referenzen == | ||
