Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java数组中插入整数_Java_Arrays - Fatal编程技术网

在java数组中插入整数

在java数组中插入整数,java,arrays,Java,Arrays,我想在数组的正确位置插入一个整数 例如,我的数组是(1,2,3,4,6),我的整数是5 新数组应为(1,2,3,4,5,6) 到目前为止,我的代码是: public static void main(String[] args) { int a = 5; int [] aray = { 1,2,3,4,6}; int[] newArray = new int[array.length + 1]; for(int i = 0; i < newArray.

我想在数组的正确位置插入一个整数

例如,我的数组是
(1,2,3,4,6)
,我的整数是
5

新数组应为
(1,2,3,4,5,6)

到目前为止,我的代码是:

public static void main(String[] args) {

    int a = 5;
    int [] aray =  { 1,2,3,4,6};
    int[] newArray = new int[array.length + 1];

    for(int i = 0; i < newArray.length -1 ; i++) {

       if(array[i] < a && array[i+1] > a) { 
            newArray[i]  = a; 
       }               
       newArray[i] = array[i];                                  
    }                    

}
publicstaticvoidmain(字符串[]args){
INTA=5;
int[]aray={1,2,3,4,6};
int[]newArray=newint[array.length+1];
for(int i=0;ia){
newArray[i]=a;
}               
newArray[i]=数组[i];
}                    
}

您可以通过两个循环来实现这一点。一个循环是迭代从原始数组复制到新数组,直到将
a
添加到
newArray
,然后第二个循环是复制原始数组中剩余的所有内容(复制到
newArray
)。最后,您需要最后一个
if
,以确保不应将元素添加到末尾。大概

int i = 0, p = 0;
while (p < newArray.length && i < array.length) {
    if (array[i] < a) {
        newArray[p++] = array[i++];
    } else {
        newArray[p++] = a;
        break; // <-- added a, break and add the rest of the original array
    }
}
while (p < newArray.length && i < array.length) {
    newArray[p++] = array[i++];
}
if (p < newArray.length) {
    newArray[p] = a;
}
System.out.println(Arrays.toString(newArray));
inti=0,p=0;
而(pbreak;//下面的代码按预期工作

int a = 4;
int[] array = { 1, 3, 5, 7, 9 };
int[] newArray = new int[array.length + 1];
for (int i = 0, j = 0; i < array.length; i++, j++) {
    if (i == 0 && array[0] > a){
        j++;
        newArray[j] = a;
    }
    newArray[j] = array[i];
    if((i == array.length - 1 && array[i]<a)
            || (array[i] < a && array[i + 1] > a)) {
        j++;
        newArray[j] = a;
    }

}
System.out.println(Arrays.toString(newArray));
inta=4;
int[]数组={1,3,5,7,9};
int[]newArray=newint[array.length+1];
for(int i=0,j=0;ia){
j++;
newArray[j]=a;
}
newArray[j]=数组[i];
if((i==array.length-1&&array[i]a)){
j++;
newArray[j]=a;
}
}
System.out.println(Arrays.toString(newArray));

您可以尝试这样做:您可以使用
System.arraycopy()
而不是
来执行
循环

int a = 5;
int [] array =  { 1,2,3,4,6};
int[] newArray = new int[array.length + 1];
// 1. copy the array
System.arraycopy(array, 0, newArray, 0, array.length);
// 2. insert the value to the last position.
newArray[newArray.length-1] = a;
// 3. then sort the array
Arrays.sort(newArray);

// or you can swap the position for this
/*int temp = newArray[4];
newArray[4] = a;
newArray[5] = temp;*/

// 4. and it is what you want
System.out.println("newArray = " + Arrays.toString(newArray));
结果是:

newArray = [1, 2, 3, 4, 5, 6]
for(int i=0;ia){
int t=数组[i+1];
newArray[i+1]=a;
newArray[i+2]=t;
newArray[i]=数组[i];
break;//使用break
}
newArray[i]=数组[i];
}

请检查以下代码

int a = 5;
int [] aray =  { 1,2,3,4,6};
int[] newArray = new int[aray.length + 1];
for(int i=0, j=0;  i<aray.length;   i++, j++) {
      if((aray[i] > a) && (j == i)) {
            newArray[j] = a;
            j++;
       }
       newArray[j] = aray[i];
}
if(j == i) {
    newArray[j] = a;
}
inta=5;
int[]aray={1,2,3,4,6};
int[]newArray=newint[aray.length+1];
对于(int i=0,j=0;ia)和&(j==i)){
newArray[j]=a;
j++;
}
newArray[j]=aray[i];
}
如果(j==i){
newArray[j]=a;
}
类测试{
公共静态void main(字符串参数[]){
int arr[]={1,2,3,4,5};
int new_数组[]=新int[arr.length+1];
int e=9;
int p=3;
对于(int i=0;i
int a = 5;
int [] aray =  { 1,2,3,4,6};
int[] newArray = new int[aray.length + 1];
for(int i=0, j=0;  i<aray.length;   i++, j++) {
      if((aray[i] > a) && (j == i)) {
            newArray[j] = a;
            j++;
       }
       newArray[j] = aray[i];
}
if(j == i) {
    newArray[j] = a;
}
class test{
public static void main(String args[]){
        int arr[] ={1,2,3,4,5};
        int new_array[] =new int[arr.length+1];
        int e = 9;
        int p = 3;
        for(int i=0;i<=arr.length-1;i++){
                if(i==p){
                        new_array[i] = e;
                        continue;
                    }
                new_array[i]=arr[i];
            }
    }