Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/376.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,我希望代码将任何小于20的数字移到数组的末尾,并且只打印大于20的数字,但它不会继续打印 13和3,而它不应该 这是输出: 剩余人数:2213326 守则: public class Test { public static void main (String[]args){ int[]cpoies = {22,12,13,4,3,2,26}; int numOfNumbers=cpoies.length; for(int i=0;i<c

我希望代码将任何小于20的数字移到数组的末尾,并且只打印大于20的数字,但它不会继续打印 13和3,而它不应该

这是输出:

剩余人数:2213326

守则:

public class Test {

   public static void main (String[]args){


      int[]cpoies = {22,12,13,4,3,2,26};

      int numOfNumbers=cpoies.length;

      for(int i=0;i<cpoies.length;i++){
         if(cpoies[i] < 20 ){
            for(int j=i;j<cpoies.length-1;j++)
               cpoies[j]=cpoies[j+1];
            --numOfNumbers;
         }}

      System.out.println("The remained : ");

      for(int i=0;i<numOfNumbers;i++){
         System.out.println(cpoies[i]);   
      }


   }}
公共类测试{
公共静态void main(字符串[]args){
int[]cpoies={22,12,13,4,3,2,26};
int numOfNumbers=cpoies.length;

对于(inti=0;i如果你的数字小于20,不要增加i。因为在你的代码中,你将i+1元素移动到第i个位置

if(cpoies[i] < 20 ){
            for(int j=i;j<cpoies.length-1;j++)
               cpoies[j]=cpoies[j+1];
            --numOfNumbers;
            i--;
         }}

这不是交换。您正在覆盖数组中的现有数据,而不是进行交换。您需要一个交换变量

for(int i=0;i<cpoies.length;i++){
     if(cpoies[i] < 20 ){
        for(int j=i;j<cpoies.length-1;j++)
           cpoies[j]=cpoies[j+1];
        --numOfNumbers;
     }
}
对于(int i=0;i您可以尝试此

public class Test {

   public static void main (String[]args){


      int[]cpoies = {22,12,13,4,3,2,26};

      int numOfNumbers=cpoies.length;

      for(int i=0;i<cpoies.length;i++){
         if(cpoies[i] < 20 ){
            int temp = cpoies[i];
            for(int j=i+1;j<cpoies.length;j++) {
               if(cpoies[j] > 20) {
                  cpoies[i] = cpoies[j];
                  cpoies[j] = temp;
                  numOfNumbers--;
               }
            }
         }
     }

      System.out.println("The remained : ");

      for(int i=0;i<=cpoies.length-numOfNumbers;i++){
         System.out.println(cpoies[i]);   
      }


   }}
公共类测试{
公共静态void main(字符串[]args){
int[]cpoies={22,12,13,4,3,2,26};
int numOfNumbers=cpoies.length;

对于(int i=0;i,除了已经给出的所有答案之外,这里是所有大数字的开始。由于我希望的中断注释,更有效一点

public class Test {

   public static void main (String[]args){


      int[]numbers = {22,12,13,4,3,2,26};

      int numOfNumbers=numbers.length;

      for(int i=0;i<numbers.length;i++){
         if(numbers[i] > 20){
            for(int j=i;j>0;j--)
                if (numbers[j-1]>20){
                    break;
                    numOfNumbers=j;
                }
                tempnum=numbers[j];
                numbers[j]=numbers[j-1];
                numbers[j-1]=tempnum;
         }}

      System.out.println("The remained : ");

      for(int i=0;i<=numOfNumbers;i++){
         System.out.println(numbers[i]);   
      }
    }
}
公共类测试{
公共静态void main(字符串[]args){
int[]数={22,12,13,4,3,2,26};
int numOfNumbers=numbers.length;
对于(int i=0;i 20){
对于(int j=i;j>0;j--)
如果(数字[j-1]>20){
打破
numOfNumbers=j;
}
tempnum=数字[j];
数字[j]=数字[j-1];
数字[j-1]=tempnum;
}}
System.out.println(“剩下的:”);

对于(int i=0;iI)我会写出每次迭代后你的
cpoies
数组是什么样子的移位到数组的末尾很重要吗?数字保持顺序很重要吗?或者如果数字在数组中移动,并且你将其从低到高排序,这会很好吗?
public class Test {

   public static void main (String[]args){


      int[]cpoies = {22,12,13,4,3,2,26};

      int numOfNumbers=cpoies.length;

      for(int i=0;i<cpoies.length;i++){
         if(cpoies[i] < 20 ){
            int temp = cpoies[i];
            for(int j=i+1;j<cpoies.length;j++) {
               if(cpoies[j] > 20) {
                  cpoies[i] = cpoies[j];
                  cpoies[j] = temp;
                  numOfNumbers--;
               }
            }
         }
     }

      System.out.println("The remained : ");

      for(int i=0;i<=cpoies.length-numOfNumbers;i++){
         System.out.println(cpoies[i]);   
      }


   }}
public class Test {

   public static void main (String[]args){


      int[]numbers = {22,12,13,4,3,2,26};

      int numOfNumbers=numbers.length;

      for(int i=0;i<numbers.length;i++){
         if(numbers[i] > 20){
            for(int j=i;j>0;j--)
                if (numbers[j-1]>20){
                    break;
                    numOfNumbers=j;
                }
                tempnum=numbers[j];
                numbers[j]=numbers[j-1];
                numbers[j-1]=tempnum;
         }}

      System.out.println("The remained : ");

      for(int i=0;i<=numOfNumbers;i++){
         System.out.println(numbers[i]);   
      }
    }
}