题解 | #成绩排序#
成绩排序
https://www.nowcoder.com/practice/8e400fd9905747e4acc2aeed7240978b
import java.util.*; import java.util.stream.Collectors; /** * @description 可能会出现同名 所以不能通过使用Map存名字和成绩然后对成绩进行稳定排序的方法来解决 * @date 2024-06-06 10:38 */ public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int amount = sc.nextInt(); int order = sc.nextInt(); int [][]score = new int[amount][2]; HashMap<Integer, String> map = new HashMap<>(); sc.nextLine();//清空输入数字后的回车 防止第一次存回车空数据进入data导致data[1]越界 for(int i=0;i<amount;i++){ String[] data = sc.nextLine().split("\\s+"); score[i][0]=i; score[i][1]=Integer.parseInt(data[1]); map.put(i,data[0]); } Arrays.sort(score,(o1,o2)->{ if(order==0) return o2[1]-o1[1]; else return o1[1]-o2[1]; }); //降序 for(int j=0;j<amount;j++){ System.out.println(map.get(score[j][0])+" "+score[j][1]); } } }