如何在数组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。