A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 郑丹丹1990 中级黑马   /  2013-5-16 16:51  /  1458 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 郑丹丹1990 于 2013-5-17 07:42 编辑
  1. ArrayList employees = new ArrayList();
  2. employees.Insert(0, "zdd");
  3. employees.Insert(1, "zzb");
  4. employees.Insert(2, "zxl");
  5. int count = employees.Count;
  6. int nums = employees.Capacity;
  7. Console.WriteLine(count + " " + nums);
  8. Console.ReadKey();
复制代码
结果3 4???
主要是nums

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

6 个回复

倒序浏览
c15881291595 发表于 2013-5-16 17:07
Capacity是ArrayList 的可包含元素数,当实际元素数Count超过可包含元素时ArrayList会自动翻倍,初始为0, ...

我仍不明白。
回复 使用道具 举报
本帖最后由 Return 于 2013-5-16 21:14 编辑

Capacity是容量,好像始终为4的倍数,始终比Conut大

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
楼上不是说了吗 count就是你元素的个数 ,
Capacity是ArrayList 的可包含元素数,当实际元素数Count超过可包含元素时ArrayList会自动翻倍,初始为0,超过0个Capacity变为4,当实际元素数超过4个时Capacity会自动翻倍到8.同理超过8个时翻倍到16。。。然后超16就变32
Capacity=2的偶次方

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
曾大鹏 发表于 2013-5-16 21:12
楼上不是说了吗 count就是你元素的个数 ,
Capacity是ArrayList 的可包含元素数,当实际元素数Count超过可 ...

l理解!!!!
回复 使用道具 举报
ArrayList的Capacity 就是由于你没有指定空间,所以当这个集合没有元素的时候,该属性值是0,如果有值的话,该值变成4,之后超过4个的话,就会编程8个,成倍的增长   

评分

参与人数 1技术分 +1 收起 理由
苏波 + 1

查看全部评分

回复 使用道具 举报
ArrayList arr=new ArrayList(3);
你可以这样指定集合的大小,超过了3个,集合容量变成了6个,成倍增长
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马