所以我知道Java将数组的大小视为不可变的,但在PHP等其他语言中,我已经能够使用[]
为数组的下一个索引赋值:
$arr = array();
//Arr looks like this
$arr => {}
$arr[] = "Value";
//Arr looks like this
$arr => {"Value"}
Java中是否有类似的功能?
int[] arr = new int[0];
arr[] = 3;
arr[] = 4;
//arr => [3, 4];
答案 0 :(得分:6)
在java中,你必须在创建时设置数组的大小
int[] arr = new int[2];
然后,一旦创建了数组,您就可以将值添加到特定索引,如下所示:
arr[0] = 3;
arr[1] = 4;
//Now arr = {3, 4}
但是,您无法向数组arr
添加第三个值,因为大小固定为2.如果您需要更改数组的大小,ArrayList
会更好。您可以使用add()
方法,它会将值添加到数组的末尾
ArrayList<Integer> arr = new ArrayList<Integer>();
arr.add(3);
arr.add(4);
arr.add(5);
//Now arr contains the values {3, 4, 5}
//You can continue you add values
编辑:另一种选择是使用Arrays.copyOf(int[] arr, int size)
int[] arr = {3, 4};
//arr contains the values {3, 4}
int[] arr2 = Arrays.copyOf(arr, 4);
//arr2 contains the values {3, 4, 0, 0}
答案 1 :(得分:2)
如前所述,Java数组无法调整大小。但是,如果您使用ArrayList<Integer>
,则可以使用add()
函数来获得所需的结果。
答案 2 :(得分:0)
没有。您必须使用自己的索引或使用ArrayList
和add
方法
答案 3 :(得分:0)
几乎。数组创建有一种简写语法:
int[] arr = {3, 4};
否则使用自动调整大小的List:
List<Integer> list = new ArrayList<>();
list.add(3);
list.add(4);
// etc
答案 4 :(得分:0)
在Java中,您必须在构造时设置数组中的元素数。所以你不能在数组的末尾添加更多的元素。
您可以执行以下操作以移至数组中的下一个元素:
int[] arr = new int[2];
int = 0;
arr[i++] = 3;
arr[i++] = 4;
这是有效的,因为i
在分配每个数组元素后递增。
如果您确实要附加到列表的末尾,则应使用Java集合类。遗憾的是,您不能拥有原始类型的集合(例如int
)。