【问题标题】:Array in Descending Reverse order in JavaJava中以降序反转顺序排列的数组
【发布时间】:2016-01-26 03:58:57
【问题描述】:

如何在 Java 中按降序排列这些年份?
样本输入:

1 1996 2 2015 3 2000

预期输出:

ID:2(2015 年)
编号:3 (2000)
编号:1(1998)

以下是我尝试过的代码:

import java.util.Collections;
import java.util.Scanner;

public class ArrayYear {

  public static void main(String[] args) {

    Scanner in = new Scanner(System.in);
    int[] arr = new int[3];
    int[] year = new int[3];

    // read element into array
    for (int i = 0; i < arr.length; i++)
    {
      // input value
      arr[i] = in.nextInt(); 
      year[i] = in.nextInt();
    }

    // reverse array 
    for (int j = i + 1; j < year.length ; ++j)
    {
      if ( year[i] < year[j])
      {
        int temp = year[i];
        year[i] = year[j];
        year[j] = temp;
      }
    }

    for (int i = 0; i < arr.length; i++)
    {
      // print array
      System.out.println("ID :" + arr[i] + "(" + year[i] + ")");
    }
  }
}

【问题讨论】:

  • 您需要在打印之前以相反的顺序对数组进行排序,对吧?
  • 请在发布问题之前搜索解决方案
  • 是的..好的,我会试试的。谢谢你:)
  • 您可能需要致电Collections.sort(list, Collections.reverseOrder());

标签: java arrays reverse


【解决方案1】:
import java.util.Collections;
import java.util.Scanner;

public class ArrayYear {

    public static void main(String[] args) {

    Scanner in = new Scanner(System.in);
    int[] arr = new int[3];
    int[] year = new int[3];

    // read element into array
    for (int i = 0 ; i < arr.length; i++)
    {
     // input value
     arr[i] = in.nextInt(); 
     year[i] = in.nextInt();

      // reverse array year[i] in descending order
     for (int j = 0 ; j < year.length ; j++)
      {
        if ( year[i] < year[j] )
        {
        int temp = year[i];
        year[i] = year[j];
        year[j] = temp;
        }
      }                 
    }

      for (int i = arr.length-1 ; i >= 0 ; i--)
      {
      // print array
       System.out.println("ID :" + arr[i] + "(" + year[i] + ")");   
      }
   }
}
      //my output :      
      ID :3(2001)
      ID :2(2000)
      ID :1(1988)

      //sample output:
      ID: 2 (2001)
      ID: 3 (2000)
      ID: 1 (1998)

【讨论】:

  • 如何让第一个数组元素持有第二个数组元素?
【解决方案2】:

尝试应该适用于数组反转

for (int i = arr.length; i = 0; i--)
  {
   // print array
   System.out.println("ID :" + arr[i] + "(" + year[i] + ")");
  }

【讨论】:

  • 应该是“for (int i = arr.length-1; i >= 0; i--)”
  • 是的@Eddie...应该再考虑一下
猜你喜欢
  • 2016-05-08
  • 1970-01-01
  • 2023-04-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-09
相关资源
最近更新 更多