java—向现有数组的开头添加一个整数

f87krz0w  于 2021-07-03  发布在  Java
关注(0)|答案(3)|浏览(411)

这个问题在这里已经有答案了

将字符串添加到字符串数组的开头(9个答案)
三年前关门了。
我得到了一系列 int 我需要返回一个新数组,数组的开头加上数字3。
如果数组是 MyArray[1,2,3] 我需要创建一个新的数组 [3,1,2,3] .
我不知道不使用arraylist我该怎么做。我需要做的只是循环。

ahy6op9u

ahy6op9u1#

这里不需要显式循环,因为您可以使用 System.arraycopy(Object src, int srcPost, Object dest, int destPos, int length) . 首先,决定如何处理 null 数组的输入(我希望返回一个新的单元素数组)。否则,创建一个新的数组,其中包含一个或多个元素的空间。设置第一个值,然后以偏移量1复制所有内容。最后,返回新数组。比如,

public static int[] insertValue(int[] src, int value) {
    if (src == null) {
        return new int[] { value };
    }
    int[] dest = new int[src.length + 1];
    dest[0] = value;
    System.arraycopy(src, 0, dest, 1, src.length);
    return dest;
}
qyuhtwio

qyuhtwio2#

你可以用 System.arrayCopy() ```
public int[] insert(int[] src, int value) {
int[] dest = new int[src.length + 1];
dest[0] = value;
System.arraycopy(src, 0, dest, 1, src.length);
return dest;
}

kiz8lqtg

kiz8lqtg3#

尝试以下操作:

public int[] insert(int[] src, int value)
{
    int[] dest = new int[src.length + 1];
    dest[0] = value;
    for (int i=0; i<src.length; i++)
    {
        dest[i+1] = src[i];
    }
    return dest;
}

你可以这样使用它:

int[] newArray = insert(MyArray, 3);

这是基本思想。您需要将其放入一个类中,添加错误检查(例如,如果 srcnull )等等。

相关问题