2 sinat 26812289 sinat_26812289 于 2016.04.01 19:48 提问

能不能实现超过数组大小的数据存储并显示

比如定义10空间的数组,能否存11个数。用java能实现么。求教啊

7个回答

freedom_wings5
freedom_wings5   2016.04.01 20:27

你的空间只有10个数,你是肯定不能存11个的。除非你把前面的空间删除了数据把新的写进去,又或者不够的时候再开新的空间出来

pppploi8
pppploi8   2016.04.01 20:29

不能
java的话可以使用List集合,具体可以选择使用数组实现的ArrayList或者链表实现的LinkedList,如果不确定选择什么合适那么用ArrayList即可
集合是可以动态增加长度的,你只需要一开始new一个集合出来,不需要设置长度,增加时候调用add方法即可,如果要取出当前集合里的长度用size方法即可

至于数组是肯定不可以的,的确没这个功能,如果必须用数组,那么可以考虑申请一个比预期更大的数组,比如长度20,如果放满的话可以申请一个更大的数组(比如40),再把原来的数组复制到新数组,来强行模拟出ArrayList的效果(不过话说回来还是不如直接用List方便)

qinjisheng_11
qinjisheng_11   2016.04.01 23:50

不能,java不允许这样,但是C语言可以,但是不建议这么做,会覆盖掉不知道存储什么东西的内存

zhangshangui_2015
zhangshangui_2015   2016.04.02 09:06

一般编程语言都不支持固定长度的数组存储超过其存储大小的数据,虽然有些语言支持变长度的数组,还有向arralisty\list<>\dictionary\hashtable这样的数据结构,但这是两回事。

ErwinErwachsene
ErwinErwachsene   2016.04.02 20:24

溢出哗啦啦
|・ω・`)

ErwinErwachsene
ErwinErwachsene   2016.04.06 23:16

C++可以溢出,但我用dev试不出来,溢出会覆盖掉未知的内存,可以连续定义两个数组(存储空间会连在一起),先给第二个数组赋值,再给第一个数组赋一个溢出的值,然后连续输出两个数组,观察结果,就可以了。

qq_35691619
qq_35691619   2017.10.20 21:52

你可以将前面的进行覆盖,但无法存储过多

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!