在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;
而(p break;//下面的代码按预期工作
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];
}
}