new ArrayList(10)(原始类型什么意思),分配容量为10,那么这个10是什么意思?

bluemei-lee 2010-11-25 03:41:09
是不是10个字节,还是10个对象?或者...
还有new ArrayList<String>(10)中的10又是什么意思?表示分配10个字符串空间吗?(每个字符串空间默认?) 而new ArrayList<MyData>()是默认分配10个MyData对象的空间吗(MyData自定义类).
...全文
448 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
郑宏辉 2010-11-26
  • 打赏
  • 举报
回复
new ArrayList<String>(10)
10是指ArrayList数组的大小,存放10个String对象的内存空间。而<String>这里表示的是泛型。说明这个数组只能用来存放String类型的对象
hepehuan 2010-11-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 houjin_cn 的回复:]
ArrayList内部使用一个Object[] 来保存数据的;
new ArrayList<String>(10) 就是要求这个Object[]的初始大小设为10
看源码:

Java code

public ArrayList(int initialCapacity) {
super();
if (initialCapacity < 0)
……
[/Quote]

正解,存在的都是引用,加上泛型也只是定义只能存什么类型的对象;
jayqean 2010-11-25
  • 打赏
  • 举报
回复
10个停车位
至于停了多少车 就是size()
houjin_cn 2010-11-25
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 bluemeimei 的回复:]
谢谢,那么new Object[10] 分配多大内存呢?
[/Quote]
这个数组是空的, 每一个位置都是null,
内存大约 4*10+8 字节左右
内存空间不重要, 你只要知道这个可以放10个对象到里面取(初始的时候一个都没放)
bluemei-lee 2010-11-25
  • 打赏
  • 举报
回复
谢谢,那么new Object[10] 分配多大内存呢?
yudongy2008 2010-11-25
  • 打赏
  • 举报
回复
我的理解是,arraylist里面存放的本不是对象什么的本身而是对这些对象的引用,在调用这些对象时,通过arraylist里面的值可以找到具体的对象而泛型仅仅是规定的它里面存放的内容
仅仅是个人理解
houjin_cn 2010-11-25
  • 打赏
  • 举报
回复
ArrayList内部使用一个Object[] 来保存数据的;
new ArrayList<String>(10) 就是要求这个Object[]的初始大小设为10
看源码:

public ArrayList(int initialCapacity) {
super();
if (initialCapacity < 0)
throw new IllegalArgumentException("Illegal Capacity: "+
initialCapacity);
this.elementData = new Object[initialCapacity];//这里
}

knightzhuwei 2010-11-25
  • 打赏
  • 举报
回复
10个引用的空间

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧