如何使用静态方法(无ArrayLists)在Java中添加、删除或插入数组



我正在尝试自学Java,但在没有ArrayLists的情况下,我不得不制作这些数组。我试着在网上查找静态方法,但找不到任何能帮助我理解的东西。我必须制作3个可以用来修改数组的方法。因此,为了将值添加到数组的末尾,该方法应该将数组和值作为参数。然后,它应该返回一个新数组,该数组与旧数组相同,但添加了值。我正在尝试学习的网站向我展示了代码块,并解释了方法的作用,但它没有向我展示如何使用它们。

public class Arrays {
static void array() {
System.out.print("1, 2, 4, 7");
}
static void add() {
System.out.print(", 11");
}

public static void main(String[] args) {
System.out.println("Array:");
array();
System.out.println(" ");    
System.out.println("Array with Added End:");
array();
add();
System.out.println(" ");
}
}

。。。为了将值添加到数组的末尾,该方法应该将数组和值作为参数。然后,它应该返回一个新数组,该数组与旧数组相同,但添加了值。

我将假设add是将向数组添加内容的方法,并且您的数组的类型为int[]。我将逐步构建方法:

方法应将数组和值作为参数

add(int[] arr, int val) {}

然后它应该返回一个与旧数组相同的新数组

因此,该方法的返回类型必须与数组参数arr相同。既然你说方法必须是静态的:

public static int[] add(int[] arr, int val)
{
// todo: make this work
}

然后它应该返回一个新数组,该数组与旧数组相同,但添加了值

无法调整数组的大小,因此需要创建一个新数组(也在说明中指定(,该数组足够大,可以容纳arr的所有元素和一个额外的元素。有几种方法可以填充新阵列:

自己复制每个元素:

public static int[] add(int[] arr, int val)
{
int[] newArray = new int[arr.length + 1];
for (int index = 0; index < arr.length; index++)
{
newArray[index] = arr[index];
}
// Arrays start at index 0 so arr.length will be the last
// position in newArray.
newArray[arr.length] = val;
return newArray;
}

使用java.util.Arrays:

public static int[] add(int[] arr, int val)
{
int[] newArray = Arrays.copyOf(arr, arr.length + 1);
newArray[arr.length] = val;
return newArray;
}

使用System.arraycopy:

public static int[] add(int[] arr, int val)
{
int[] newArray = new int[arr.length + 1];
System.arraycopy(arr, 0, newArray, 0, arr.length);
newArray[arr.length] = val;
return newArray;
}

这应该是一个关于使用数组的示例,可以帮助您编写另外两个方法。