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,在下面的代码中,我试图在数组中添加整数,如果数组元素与特定键匹配,在我的例子中,假设k=1。但我不知道在数组的最后添加元素后如何迭代数组,以检查是否有任何元素可以移到数组的最后。 另外,我不想使用任何java集合。请在这方面帮助我 int[] a=new int[8]; int key=1; int temp,c=0; a[0]=1;a[1]=1;a[2]=2;a[3]=1; a[4]=1;a[5]=1;a[6]=3;a[7]=4; int l=a.length; for(int i=0;i&l

在下面的代码中,我试图在数组中添加整数,如果数组元素与特定键匹配,在我的例子中,假设k=1。但我不知道在数组的最后添加元素后如何迭代数组,以检查是否有任何元素可以移到数组的最后。 另外,我不想使用任何java集合。请在这方面帮助我

int[] a=new int[8];
int key=1;
int temp,c=0;
a[0]=1;a[1]=1;a[2]=2;a[3]=1;
a[4]=1;a[5]=1;a[6]=3;a[7]=4;
int l=a.length;
for(int i=0;i<l;i++) {
  c=i;
  if(a[i]==key) {
    temp=a[i];
    while(c<l-1) {
      a[c]=a[c+1];
      c++;
    }
    a[l-1]=temp;
  }
}
int[]a=新的int[8];
int键=1;
内部温度,c=0;
a[0]=1;a[1]=1;a[2]=2;a[3]=1;
a[4]=1;a[5]=1;a[6]=3;a[7]=4;
int l=a.长度;

对于(int i=0;i您可以根据以下内容稍微修改您的算法:

import java.util.Arrays;
public class Main {
    public static void main(String[] args) {
        int[] a = new int[8];
        int key = 1;
        a[0] = 1;
        a[1] = 1;
        a[2] = 2;
        a[3] = 1;
        a[4] = 1;
        a[5] = 1;
        a[6] = 3;
        a[7] = 4;
        for (int i = 0; i < a.length; i++) {
            if (a[i] != key) {
                continue;
            }
            //find next element which doesn't equal to key and swap
            for (int j = i; j < a.length; j++) {
                if (a[j] != a[i]) {
                    int t = a[i];
                    a[i] = a[j];
                    a[j] = t;
                    break;
                }
            }
        }

        System.out.println(Arrays.toString(a));
    }
}
导入java.util.array;
公共班机{
公共静态void main(字符串[]args){
int[]a=新的int[8];
int键=1;
a[0]=1;
a[1]=1;
a[2]=2;
a[3]=1;
a[4]=1;
a[5]=1;
a[6]=3;
a[7]=4;
for(int i=0;i
输出:
[2,3,4,1,1,1,1]

公共静态void main(字符串args[])
    public static void main(String args[])
    {
     int a[]={1,1,2,1,1,1,3,3};
     int k=1,n=a.length-1;
     for(int i=0;i<a.length;i++)
     {
     if(a[i]==k)
       {
          int temp=a[i];
          for (int j=i;j<n-1;j++)
      { 
          a[j]=a[j+1];
       } 
       a[n]=temp;
      }
    }
 }
{ int a[]={1,1,2,1,1,1,3}; int k=1,n=a.length-1;
对于(int i=0;i使用调试器将显示为什么您的第一次外循环迭代可以工作,但第二次不行。谢谢Yan!,它工作得很好,并帮助我理解我的错误所在。