【问题标题】:Is ArrayList in C# a good equivalent for ArrayList in Java?C# 中的 ArrayList 是否与 Java 中的 ArrayList 相当?
【发布时间】:2014-04-09 16:11:59
【问题描述】:

我是 C# 新手——不到 50 行代码。

所以问题是 C# 中的 ArrayList 可以很好地替代 Java 中的 ArrayList。

以下是我注意到的一些差异:

  1. C# 中的 ArrayList 似乎不支持泛型 - 这令人惊讶,它让我相信我正在查看一个较旧的集合类。
  2. 我似乎无法像在 Java 中使用 set(index, value) 那样就地替换元素
  3. 更令人困惑的是,要在 C# 中访问元素 n,我必须使用数组访问器 [n] 而不是 get(n)
  4. 进一步认为我可以使用 [] 访问 c# 中的元素,但我无法设置 myarraylist[n]="bla"

所以这让我相信我在这里遗漏了一些东西——也许是关于 C# 设计理念的东西。

我尝试在 Internet 上为 Java 程序员寻找 C#,但我仍然没有很好的答案。

【问题讨论】:

  • C# 中的 ArrayList 是泛型之前的遗物。你可能想要List<T>

标签: c# java arraylist


【解决方案1】:

泛型使用List<T>,大致相当于Java的ArrayList

List(Of T) 类是 ArrayList 类的通用等价物。 它通过使用数组来实现 IList(Of T) 泛型接口 其大小根据需要动态增加。

【讨论】:

  • 底层实现怎么样——它是一个链接,数组...我可以调整它吗?
  • @JasonC,刚刚也将其添加到我的答案中:)
  • @Habib 如果出于性能原因我需要将底层实现称为 LinkedList - 假设我的 List 的大小会有很大差异?
  • @user1172468,那么你可以使用LinkedList<T> Class
  • @user1172468 - 请记住,在您有良好的分析表明它确实是收集算法的实现而不是围绕类的不良设计之前,不应尝试您所指的那种性能优化.
猜你喜欢
  • 2012-01-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-18
  • 1970-01-01
  • 2011-01-19
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多