Java使用array []分配给下一个索引

时间:2014-02-03 23:52:25

标签: java arrays

所以我知道Java将数组的大小视为不可变的,但在PHP等其他语言中,我已经能够使用[]为数组的下一个索引赋值:

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];

5 个答案:

答案 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)

没有。您必须使用自己的索引或使用ArrayListadd方法

答案 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)。