当前位置:编程学习 > JAVA >>

java怎样定义可变长数组

如题,不能像C和C++一样,java不能定义可变长数组。 --------------------编程问答-------------------- 在javaScript中可以啊!
   可变数组不能定义,建议你采用泛型
集合就解决了啊! --------------------编程问答-------------------- 好吧,看来我是得好好学学泛型了。呵呵 --------------------编程问答-------------------- 你想干啥? --------------------编程问答-------------------- 集合就可以了啊    --------------------编程问答-------------------- 基本类型的可变长数组确实是没有办法
非基本类型的可变长数组可以用下集合类 --------------------编程问答-------------------- 好的,谢谢各位了 --------------------编程问答-------------------- 数组一旦创建是不可改变的 c 跟 c++也一样吧
Java中 可以试试 List --------------------编程问答-------------------- 数组时不可变的
自己可以写个类Objects
字段是一个Object[]数组
其中有add()方法,每次判断是否越界,如果越界再new一个更大的Object[]数组,没有越界就直接添加

参考java.util.List
--------------------编程问答--------------------
引用楼主 leidongjiutian1 的回复:
如题,不能像C和C++一样,java不能定义可变长数组。


不可以!

数组是不可变对象,在编译时就确定其长度了,不允许你引用超过这个数组长度的索引。这是 Java 不用同 C/C++ 的一个地方。 --------------------编程问答-------------------- 可以用一下java.util.vector  是可变长度的数组 --------------------编程问答-------------------- 学习,刚刚碰到这个问题。
数组定义之后不可变,要可变数组用类集合 --------------------编程问答-------------------- java.util.vector
List(ArrayList) --------------------编程问答-------------------- Vector就是可变数组 --------------------编程问答-------------------- java 中接口Collectio的实现类ArrayList采用数组作内部结构,可以自动管理数组大小,根据需要给数组添加。删除新元素自动申请储存空间,另外一个实现类LinkedList,采用链表作数据结构,二者的差异在于前者查找方便,可以根据索引直接查到值,后者需要利用迭代器挨个儿查询。。。 --------------------编程问答-------------------- java 中接口Collectio的实现类ArrayList采用数组作内部结构,可以自动管理数组大小,根据需要给数组添加。删除新元素自动申请储存空间,另外一个实现类LinkedList,采用链表作数据结构,二者的差异在于前者查找方便,可以根据索引直接查到值,后者需要利用迭代器挨个儿查询。。。 --------------------编程问答--------------------   List<String> list  = new ArrayList<String>(); --------------------编程问答-------------------- 谢谢大家!!! --------------------编程问答-------------------- 所谓可变长度,就是往里面放值直到放满后再重新new一个更加长的数组,把之前放的值重新再放一次,这个时候就有剩余的空间继续放值了。
ArrayList 就是可变长度的,因为以前在调试的时候初始化是10个长度,没有赋值的都是null, 超过10个后变成20个了,一直按10的倍数递增。。 --------------------编程问答--------------------
引用 18 楼 ch656409110 的回复:
所谓可变长度,就是往里面放值直到放满后再重新new一个更加长的数组,把之前放的值重新再放一次,这个时候就有剩余的空间继续放值了。
ArrayList 就是可变长度的,因为以前在调试的时候初始化是10个长度,没有赋值的都是null, 超过10个后变成20个了,一直按10的倍数递增。。

我记得ArrayList不是按10的倍数递增的吧,应该是设定的ArrayList长度的2倍+1增加的。 --------------------编程问答--------------------

我记错了,是5的倍数。



引用 19 楼 wdr1007 的回复:
Quote: 引用 18 楼 ch656409110 的回复:

所谓可变长度,就是往里面放值直到放满后再重新new一个更加长的数组,把之前放的值重新再放一次,这个时候就有剩余的空间继续放值了。
ArrayList 就是可变长度的,因为以前在调试的时候初始化是10个长度,没有赋值的都是null, 超过10个后变成20个了,一直按10的倍数递增。。

我记得ArrayList不是按10的倍数递增的吧,应该是设定的ArrayList长度的2倍+1增加的。
--------------------编程问答-------------------- 不太好理解,请详细讲解一下
补充:Java ,  Java相关
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,