Java 最后在与特定键匹配的数组中添加元素
在下面的代码中,我试图在数组中添加整数,如果数组元素与特定键匹配,在我的例子中,假设k=1。但我不知道在数组的最后添加元素后如何迭代数组,以检查是否有任何元素可以移到数组的最后。 另外,我不想使用任何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
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!,它工作得很好,并帮助我理解我的错误所在。