「java里数组大小可变吗」java中数组大小可以任意改变吗
今天给各位分享java里数组大小可变吗的知识,其中也会对java中数组大小可以任意改变吗进行解释,如果能碰巧解决你现在面临的问题,别忘了关注本站,现在开始吧!
本文目录一览:
- 1、java 数组的长度为什么不能改变
- 2、为什么说,Java数组声明了大小就不能修改?
- 3、数组的大小是可变的,但所有数组元素的类型必须相同。这句话对么?
- 4、java中怎么实现可变数组
- 5、请问在java中,数组不能动态调整其大小,有什么更好大办法呢?
- 6、java中已经定义好的数组怎样扩大长度?
java 数组的长度为什么不能改变
这种东西,就得问设计者了,设计就如此。。。
如果你想要用可变的数组,那就是ArrayList,用集合,可以当作可变长度数组
为什么说,Java数组声明了大小就不能修改?
当然不可以,形象的说你有200个空间,你现在分配了100个空间,还有一百个空间没有分配使用,这时候就可以从剩下的100个空间中取空间来用,可能现在就用了100-150的空间,数组的内存空间是连续的,你如果直接使用这101的话肯定就覆盖了其它数据了。
数组空间是静态分配的,就是初始化的时候就分配好了的,你如果需要修改就要使用链表之类的动态分配空间的类,学过数据结构应该都知道链表的使用。
数组的大小是可变的,但所有数组元素的类型必须相同。这句话对么?
取决于什么编程语言里的数组。比如:
C语言的数组大小和元素类型必须在编译期指定,一经指定不可改变。
Java语言的数组元素类型必须在编译期指定,数组大小可以运行时指定,但一经指定不可改变。
Perl/Python中的数组(列表)没有此类限制。
java中怎么实现可变数组
java中的数组是不可变的,所以要实现可变数组是不可能的了。如果非要改变数组的长度,那么也只能重新开辟一个新的数组然后将长度设定为想要的,然后放弃原来的数组,当然这个放弃的数组,如果没有被引用,它会很快就被GC掉。
java中有一个方法:System.arraycopy
通常我们都使用的是Arrays.copyOf,但你去看API就知道,其实Arrays.copyOf调用的也正是System.arraycopy
public static int[] copyOf(int[] original, int newLength) {
int[] copy = new int[newLength];
System.arraycopy(original, 0, copy, 0,
Math.min(original.length, newLength));
return copy;
}
请问在java中,数组不能动态调整其大小,有什么更好大办法呢?
//有,试试下面这段代码:
//Arrays.copyOf(X,newlength);这方法如果加长了,长了的元素就是默认值,短了,就删除了元素.
import java.util.Arrays;
public class DDDD {
public static void main(String[] args) {
int[] a=new int[(int)(Math.random()*100+1)];
System.out.println(a.length);
a=Arrays.copyOf(a, (int)(Math.random()*100+1));
System.out.println(a.length);
}
}
java中已经定义好的数组怎样扩大长度?
固定的了,不能扩,
只能重新定义一个需要的长度的数组,再把原来的数据库拷贝进去
java里数组大小可变吗的介绍就聊到这里吧,感谢你花时间阅读本站内容,更多关于java中数组大小可以任意改变吗、java里数组大小可变吗的信息别忘了在本站进行查找喔。
发布于:2022-12-19,除非注明,否则均为
原创文章,转载请注明出处。