2014-02-07 73 views
0

如果我没有错Generic集合存储特定类型的对象。
例如,List<String>仅存储String类型的对象。
另外String[] arr = new String[size]存储String类型的对象。
两者都支持IEnumerable接口。
所以我想知道泛型集合和特定类型的数组之间的区别。泛型集合与特定数据类型数组的区别

+0

这是关于你想如何使用它。阵列显然更紧凑(占用更少的空间),但也不太灵活。您可以将任何内容转换为任何内容,但转换需要时间和内存。如果你希望有像'insert','add','delete','sort'这样的操作,然后使用'List <>'。如果你的优先级是按键查找,那么两者都不好(例如使用'Hashtable')。数组很适合保存固定大小的数据(例如,组织循环缓冲区)或优化大小(内存)。 – Sinatr

回答

2

array是固定大小。您可以预先确定尺寸,就是这样。像List<T>这样的集合是可变大小的。它支持添加和删除集合中的项目。在幕后,List<T>使用array来存储项目。它足够聪明,可以根据需要重新调整array的大小。

所以你不应该考虑泛型vs数组,但收集与数组。也有非通用数组,但是你很少使用这些数组。

你可以找到List<T>here的文档。