4个回答
展开全部
不知可不可以这么理解,ArrayList 就是把Object数组进行了包装,提供了一些便于使用的方法,例如add(),get()等方法
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
arraylist和vector的区别是什么呢?视频详细介绍,分分钟懂了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1:根本不存在一个动态增长的容器供我们使用。所谓集合就是在内部定义一个指定大小的数组,这个数组的大小可由Capacity属性进行设置,如果没有设置,默认是一个0长度的数组。当开始添加第一个数据时,数组的长度会被设为4。
2:当我们调用ADD方法为集合添加元素时,它会判断集合内部的数组是否已填充满,如果填充满了,就会实例化一个新的数组,数组容量为原数组容量的2倍。然后把原数组中的数据COPY到新的数组中,然后原数组会成为垃圾回收的对象被GC收集。
3:如果数据量不大或能确定数组大小的情况下,尽量使用数组而不是集合,因为多次创建新数组并COPY数据会对性能造成损伤(虽然微乎其微)。
4:如果还有疑问的话,可以定义个集合做下测试,来证明我的说法是否正确
ArrayList list = new ArrayList();
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);
for(int i =0 ;i <5 ; i++) list.Add("Hello");
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);
for (int j = 0; j < 5; j++) list.Remove("Hello");
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);
看看会输出什么
总结:
ArrayList是一个内部控制动态增长的数组,而且所有参数都是Object类型的,而普通数组(Array)则可以指定类型,比如:int[] intArray = new intArray[10];
2:当我们调用ADD方法为集合添加元素时,它会判断集合内部的数组是否已填充满,如果填充满了,就会实例化一个新的数组,数组容量为原数组容量的2倍。然后把原数组中的数据COPY到新的数组中,然后原数组会成为垃圾回收的对象被GC收集。
3:如果数据量不大或能确定数组大小的情况下,尽量使用数组而不是集合,因为多次创建新数组并COPY数据会对性能造成损伤(虽然微乎其微)。
4:如果还有疑问的话,可以定义个集合做下测试,来证明我的说法是否正确
ArrayList list = new ArrayList();
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);
for(int i =0 ;i <5 ; i++) list.Add("Hello");
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);
for (int j = 0; j < 5; j++) list.Remove("Hello");
Console.WriteLine(list.Count);
Console.WriteLine(list.Capacity);
看看会输出什么
总结:
ArrayList是一个内部控制动态增长的数组,而且所有参数都是Object类型的,而普通数组(Array)则可以指定类型,比如:int[] intArray = new intArray[10];
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询