如何在数组java中增加开头的数字

如何在数组java中增加开头的数字,java,Java,在数组中,如何将新整数放在开头?我知道如何加上最后一个。但是有人能教我如何在数组前面添加吗 int[]b=新的int[a.length+1]; 对于(int i=0;i如果使用数组,则只能根据位置添加元素。如果要在开头添加新元素,则需要将所有其他元素向右移动一个位置。此外,请记住,不能更改数组的大小。 筛选看起来像这样。N是放置新元素的位置 temp=a[n+1]; for(i=n+1;i>a.length-1;i++) { a[i]=a[i+1

在数组中,如何将新整数放在开头?我知道如何加上最后一个。但是有人能教我如何在数组前面添加吗

int[]b=新的int[a.length+1];

对于(int i=0;i如果使用数组,则只能根据位置添加元素。如果要在开头添加新元素,则需要将所有其他元素向右移动一个位置。此外,请记住,不能更改数组的大小。 筛选看起来像这样。N是放置新元素的位置

     temp=a[n+1];
     for(i=n+1;i>a.length-1;i++)
     {
       a[i]=a[i+1];
     }
     a[a.length-1]=temp;

这几乎是相同的操作,相反,并与一个简单的技巧

  • 您想添加一个新元素,因此必须创建一个足够大的数组来承载它,正如您所做的那样,将其长度设置为
    1+a.length

  • 然后您可以将第一个元素设置为希望添加的值,我将编写
    MY_value

  • 现在您需要填充数组:这意味着您必须从索引
    1
    (因为
    0
    已经填充了
    MY_值
    )进行迭代,直到达到
    b.length-1

  • 迭代时,请记住
    b
    a
    ,加上你是从索引
    i=1开始的,所以虽然这对
    b
    有好处,但你需要为
    a
    调整它,所以你必须“少一步”迭代它。要执行此操作,您只需从
    a
    访问所有
    i-1
    元素,如下面的代码所示

     int[] b = new int[a.length+1];
     b[0] = 0;
    
     for (int i = 1; i < b.length; i++) {
         b[i] = a[i-1];
     }
    
     return b;
    
    int[]b=新的int[a.length+1];
    b[0]=0;
    for(int i=1;i

  • 您需要创建一个临时数组,用新元素指定第一个位置,然后将旧数组中的所有元素复制到新的临时数组中

    例如:

    import java.util.Arrays;
    
    public class Test
    {
        public static void main(String[] args) {
            int[] arrayElements = new int[]{1,2,3,4,5,6,7};
            int newElement=0;
            int[] tempArr = new int[arrayElements.length + 1];
            tempArr[0] = newElement;
            System.arraycopy(arrayElements, 0, tempArr, 1, arrayElements.length);
            Arrays.stream(tempArr).forEach(System.out::println);
        }
    }
    

    对于这个答案,我假设你的数组有一个空框(空闲位置)来放置新元素,那么这将非常简单

    System.arraycopy(yourArray, 0, yourArray, 1, yourArray.length - 1);
    yourArray[0] = newElement;
    
    如果
    yourArray
    可以有一个附加元素,则不需要临时数组。
    arraycopy()
    可以为您完成创建临时数组、复制值等所有工作。请确保
    srcPos
    destPos
    都相同,即
    yourArray

    以下是完整的演示:

    public static void main(String[] args) {
    
        int[] yourArray = new int[5];
        Arrays.fill(yourArray, 0, 4, 1);
        System.out.println("Assume your array looks like this (with additional blank box for new element): " + Arrays.toString(yourArray));
    
        int newElement = 5000;
        System.arraycopy(yourArray, 0, yourArray, 1, yourArray.length - 1);
        yourArray[0] = newElement;
    
        System.out.println(Arrays.toString(yourArray));
    }
    
    如果您的数组中没有任何额外的空间,则需要另一个数组作为占位符,并具有额外的空间(
    finalArray
    )。不要在两个位置都使用相同的数组,只需将
    destPos
    更改为
    finalArray

    以下是这方面的演示:

    public static void main(String[] args) {
    
        int[] yourArray = new int[5];
        Arrays.fill(yourArray, 0, 5, 1);
        System.out.println("Assume your array looks like this (withOUT additional blank box for new element): " + Arrays.toString(yourArray));
    
        int newElement = 5000;
        int[] finalArray = new int[yourArray.length + 1];
        System.arraycopy(yourArray, 0, finalArray, 1, yourArray.length);
        finalArray[0] = newElement;
    
        System.out.println(Arrays.toString(finalArray));
    }
    

    您好,我认为您应该使用类似于双端队列数据结构或类似的结构。操作数组大小(添加和删除元素而不考虑位置)的方便类是
    ArrayList
    。使用整数数组远不如ArrayList方便。
    b[0]=4
    通过这种方式,您可以在第一时间添加值在Java中,数组作为固定/静态大小的块分配在内存中,它们永远不会改变。似乎您希望将数组向右移动一个位置,将索引0设置为自由,然后在那里添加一些内容..除了从inde开始逐个复制每个元素之外,没有其他方法目标阵列的x 1。