相关疑难解决方法(0)

HashSet是否保留了插入顺序?

HashSet.NET 3.5中引入的集合在使用迭代时是否保留了插入顺序foreach

文件指出,该集合没有排序,但它并没有说明插入顺序什么.预发布的BCL 博客条目表明它是无序的,但是本文声明它旨在保留插入顺序.我的有限测试表明,该顺序得以保留,但这可能是巧合.

.net hashset

62
推荐指数
4
解决办法
3万
查看次数

OrderedDictionary和Dictionary

我正在寻找一种方法来按照添加它们的顺序Dictionary枚举它KeyValuePair.现在,Dictionary的文档明确指出:

出于枚举的目的,字典中的每个项目都被视为KeyValuePair<TKey, TValue>表示值及其键的结构.返回项的顺序未定义.

我发现我需要的是一个OrderedDictionary,但我是怀疑论者,我决定亲自尝试:

OrderedDictionary od = new OrderedDictionary();
Dictionary<String, String> d = new Dictionary<String, String>();

for (int i = 0; i < 10; i++)
{
    od.Add("key" + i, "value" + i);
    d.Add("key" + i, "value" + i);
}

System.Console.WriteLine("OrderedDictionary");
foreach (DictionaryEntry de in od) {
    System.Console.WriteLine(de.Key + ", " + de.Value);
}

System.Console.WriteLine("Dictionary");
foreach (var tmp in d) {
    System.Console.WriteLine(tmp.Key + ", " + tmp.Value);
}
Run Code Online (Sandbox Code Playgroud)

输出:

OrderedDictionary
key0, …
Run Code Online (Sandbox Code Playgroud)

c# dictionary ordereddictionary

52
推荐指数
1
解决办法
5万
查看次数

链表中删除的时间复杂度

根据这个网站,我在理解为什么链接列表的时间复杂度为O(1)时遇到了一些麻烦.根据我的理解,如果你想删除一个元素肯定你必须遍历列表以找出元素的位置(如果它甚至存在)?从我的理解不应该是O(n)或我完全错过了什么?

linked-list data-structures

8
推荐指数
1
解决办法
8421
查看次数

如何反转SortedSet的顺序

我想使用以下内容在Map中打印一个有序列表:

Map<Float, String> mylist = new HashMap<>();

mylist.put(10.5, a);
mylist.put(12.3, b);
mylist.put(5.1, c);

SortedSet<Float> orderlist = new TreeSet<Float>(mylist.keySet());

for (Float i : orderlist) {
    System.out.println(i+" "+mylist.get(i));
}
Run Code Online (Sandbox Code Playgroud)

上面的代码打印:

5.1 c
10.5 a
12.3 b    
Run Code Online (Sandbox Code Playgroud)

但是如何以相反的顺序打印订单列表,如下所示:

12.3 b
10.5 a
5.1 c
Run Code Online (Sandbox Code Playgroud)

java sortedset treeset

8
推荐指数
3
解决办法
4037
查看次数

任何现有的 .Net 有序集?

我正在寻找 .Net 类,它基本上将:

  • 确保项目在其中是唯一的(如 HashSet)
  • 确保当我们枚举时,我们以与插入它们相同的顺序获得项目(如列表)

是否有一个现有的 .Net 类可以做到这一点?

我知道HashSet(不保证顺序),SortedSet(内容的顺序),但它们不符合我的需要。我没有任何其他需求(例如 aStack或 a Queue)。

我目前的替代方法是拥有List<>并使用Contains(...)之前添加和删除数据。

.net c# collections list set

4
推荐指数
1
解决办法
8244
查看次数