有人说可以改变,有人说不可以。反正我在用的时候,不指定数组的长度就会报错。
java中数组的长度 不可以改变 。
java中的数组的定义就是 相同类型 ,固定长度 的一组数据,一旦被初始化,长度不可更改。
数组声明有两种方式:
静态的初始化
如:String[] strArray = {"ab","cd"};
声明好后它的长度就是2不可改变。动态初始化
如:String[] strArray = new String[5];
这个时候它的长度为5也是不可改变的。
当然你可以先声明一个数组String[] strArray = {"ab","cd"}
, 然后由于业务需要修改为strArray = new String[5]
,表面上看长度改变了,但是这已经是两个不同的数组了,前面一个由于没有用被垃圾回收器回收了。
- 注意区分使用
new
的区别。
如果对需要用的数组的长度不确定,有两种解决办法:
第一种是在数组初始化的时候 长度申请的足够大,这样做会造成 内存空间的浪费,一般不推荐使用。
-
第二种是用java中提供的 集合 的方式存储数据,如List,Set和Map类型的对象存储数据,
- 一方面这些类型的对象的长度都是 动态增长的 ;
- 另一方面这些类中提供了很多便于操作数据的方法。
因此在对所需存储数据的多少不确定的时候,推荐使用第二种方法。