ArrayList <myclass> vs MyClass [26]?</myclass>

时间:2011-07-22 17:50:34

标签: .net arrays object arraylist

我需要在数组中存储26个对象。可能会少,但不会更多。 arrayList会占用比26个对象数组更多的空间吗?

2 个答案:

答案 0 :(得分:3)

你问的是错误的问题。除了普通的旧数组之外,ArrayList是否可能占用更多的空间是非常重要的。

您确定需要回答的问题是,您是否需要动态调整数组。

如果数组在其整个生命周期中只包含26个对象,那么你应该坚持使用普通的旧数组:myArray[26]

但是,如果您有可能需要动态调整数组大小,更改其包含的元素数量,那么肯定需要使用ArrayList实现,无论它是否会占用更多的空间。在这种情况下,灵活性更为重要,远远超过可能涉及的任何成本。

当您需要使用实现IList interface的类时,您希望使用ArrayList而不是普通数组的另一种情况。

但请记住,ArrayList类应该在.NET Framework的更高版本中弃用。 System.Collections.Generic namespace提供了一堆泛型集合类,它们对ArrayList更高效,preferable。在这种情况下,您可能希望使用List<T> class,其中T是要存储在所述数组中的对象的类。

答案 1 :(得分:0)

它不能少花费......我想它可能需要更多,这取决于它们如何进行重新定尺寸。为了澄清,如果你存储的项目少于26个,那么阵列列表可能会更好......如果你存储26个,那么阵列列表可能会更好并且可能更糟。