当我将一些项目添加到 Java Hashtable
时,它们的顺序与 .NET Hashtable
的顺序不同。有什么方法可以确保 .NET Hashtable
与 Java Hashtable
具有相同的顺序?
我正在尝试将一些 Java 代码移植到 C#。 Java 代码使用 Hashtable
来跟踪一些数据。当我查看 order 时,当我遍历 Java Hashtable
或 .NET Hashtable
(通过 Enumerator
),每个都有相同的数据,以相同的顺序......但是每个基于代码的有不同的顺序。
有什么方法可以使 .NET Hashtable
数据与 Java Hashtable
的顺序相同?
我知道 Hashtable
不处理排序 - 所以我觉得没有什么可以做的。我也无法将 Java 代码中的数据类型从 .. 说 .. Hashtable
更改为其他内容。
这里有一些相同的数据可以说明我的情况。
数据,为任一代码库按顺序添加:-
- 数量 |一些数据
- 页码 |一些数据
- x |一些数据
- 顶部 |一些数据
Java代码:
private Hashtable identifiers = new Hashtable();
...
identifiers.put(symbol, identifier);
通过遍历枚举器的 Java 输出:
.NET代码:
private Hashtable Identifiers = new Hashtable();
...
Identifiers.Add(symbol, identifier);
.NET 通过枚举器迭代输出。
有什么想法或建议吗?
最佳答案
不幸的是,除非改变集合的类型,否则真的没有办法解决这个问题。哈希表不保证顺序(正如您在帖子中提到的)。
这一切归结为:
如果顺序很重要,哈希表就是错误的数据结构。
关于java - 如何使 .NET 哈希表像 Java 哈希表一样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4621321/