gpt4 book ai didi

C# 与 Java - 通用列表

转载 作者:搜寻专家 更新时间:2023-10-30 21:37:35 24 4
gpt4 key购买 nike

泛型 List 类的 C# 和 Java 实现有何不同?

最佳答案

嗯,在 Java 中 List<T>是一个接口(interface),以 :) 开头

两者之间最重要的区别是 C# 和 Java 泛型之间的区别:在 Java 中,泛型基本上执行编译时检查并在泛型字段等中包含一些元数据 - 但实际的对象 在执行时不知道它的通用类型。你不能问 List<?>那是什么是,换句话说。实现中对泛型类型参数的任何引用都充当 Object ,基本上 - 所以一个 ArayList<String>确实得到了 Object[] 的支持.在 C# 中,所有信息在执行时也可用 - 所以 List<string>string[] 支持.

类似地,C# 泛型允许值类型类型参数,所以你可以有一个 List<int>在 C# 中而不是在 Java 中。

在方差等方面还有更多差异 - 但这与 List<T> 相去甚远。 .

而言 ArrayList<T> (Java) 和 List<T> (.NET),一些不同之处:

  • Java 列表会覆盖 equals/hashCode,而在 .NET 中则不会
  • ArrayList<T>通过将当前容量乘以 3/2 来增长; .NET 的 List<T>而是将当前容量加倍

当然,在公开的 API 方面还有其他差异 - 如果您可以提供有关您感兴趣的差异类型的更多信息,我们可以提供更多帮助。

关于C# 与 Java - 通用列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2486277/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com