java - 如何使 .NET 哈希表像 Java 哈希表一样工作

标签 java .net iterator hashtable enumeration

当我将一些项目添加到 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 更改为其他内容。

这里有一些相同的数据可以说明我的情况。

数据,为任一代码库按顺序添加:-

  1. 数量 |一些数据
  2. 页码 |一些数据
  3. x |一些数据
  4. 顶部 |一些数据

Java代码:

private Hashtable identifiers = new Hashtable();
...
identifiers.put(symbol, identifier);

通过遍历枚举器的 Java 输出:

alt text

.NET代码:

private Hashtable Identifiers = new Hashtable();
...
Identifiers.Add(symbol, identifier);

.NET 通过枚举器迭代输出。

alt text

有什么想法或建议吗?

最佳答案

不幸的是,除非改变集合的类型,否则真的没有办法解决这个问题。哈希表不保证顺序(正如您在帖子中提到的)。

这一切归结为:

如果顺序很重要,哈希表就是错误的数据结构。

关于java - 如何使 .NET 哈希表像 Java 哈希表一样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4621321/

相关文章:

java - 自定义 AbstractTableModel 无法正确显示数据

.net - 你如何使用 Pop3 'mark as read'?

c# - 现在开始为任务并行库设计是否为时过早?

java - 在 Java 中展平迭代器的迭代器

Python,行迭代器

java - 如何使用ListIterator向空列表添加元素?

java - JPA 采用(与孤儿移除相反)

java - Java 中的动态绑定(bind)遇到问题

java - 如何找出哪个 Activity 启动了触发您的 BroadCastReceiver 的 Intent ?

c# - File.Copy 卡在损坏的文件上