为什么说,Java数组声明了大小就不能修改?

为什么说,Java数组声明了大小就不能修改?例如声明了数组是int[]socre=newint[100];//100个元素空间那以后我要加到101个元素空间,我直接在in... 为什么说,Java数组声明了大小就不能修改?

例如声明了数组是 int[] socre = new int[100]; //100个元素空间
那以后我要加到101个元素空间,我直接在int[100]更改为int[101],这样不行吗?
展开
 我来答
scbuy
推荐于2016-06-20 · 超过12用户采纳过TA的回答
知道答主
回答量:38
采纳率:0%
帮助的人:29.3万
展开全部
当然不可以,形象的说你有200个空间,你现在分配了100个空间,还有一百个空间没有分配使用,这时候就可以从剩下的100个空间中取空间来用,可能现在就用了100-150的空间,数组的内存空间是连续的,你如果直接使用这101的话肯定就覆盖了其它数据了。

数组空间是静态分配的,就是初始化的时候就分配好了的,你如果需要修改就要使用链表之类的动态分配空间的类,学过数据结构应该都知道链表的使用。
headmycalll
2008-12-28 · TA获得超过340个赞
知道答主
回答量:88
采纳率:0%
帮助的人:0
展开全部
Java数组声明后是不能改了

int[] socre = new int[100]; 中
socre只是指向int[100]; 的引用
int[101]这个语句是重新申请了一块空间,然后把引用返回给了socre

如果你想改变大小可以用ArrayList
List list = new ArrayList();
ArrayList简单的理解就是可变大小的数组,当然性能上比数组要稍弱
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
huyanlin1115
2008-12-29 · 超过35用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:76.5万
展开全部
int[] socre = new int[100]; 然后再改为socre = new int[101]; 是可以的.但是你并没有改变它的大小.只是改变了它引用的对象(也就是说你换了个数组,原来的数组还在那里,大小根本都没有改变过).
你要是想存储不知数量的对象(不定长),你最好用集合.它很方便,易用!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
宾蔓翠澎
2019-09-11 · TA获得超过4016个赞
知道大有可为答主
回答量:3130
采纳率:24%
帮助的人:226万
展开全部
跟你打个比方,像是int
a
,a=1;a=3;a先赋值为1,后又将其值改为3是相似的意思,首先创建了
s,后又重新再创建了一个,其名也为s,故而s长度改变了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
秒杀用了一分钟
2008-12-28 · TA获得超过512个赞
知道小有建树答主
回答量:530
采纳率:0%
帮助的人:233万
展开全部
不行. 如果你不能确定长度的话,建议用集合来做
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(4)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式