欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

Java.成绩排序---(查找和排序)

程序员文章站 2024-03-21 18:58:28
...

链接:https://www.nowcoder.com/questionTerminal/0383714a1bb749499050d2e0610418b1
来源:牛客网
 

查找和排序

题目:输入任意(用户,成绩)序列,可以获得成绩从高到低或从低到高的排列,相同成绩
都按先录入排列在前的规则处理。

示例:
jack      70
peter     96
Tom       70
smith     67

从高到低  成绩
peter     96
jack      70
Tom       70
smith     67

从低到高

smith     67

jack      70
Tom      70
peter     96

 

输入描述:

 

输入多行,先输入要排序的人的个数,然后输入排序方法0(降序)或者1(升序)再分别输入他们的名字和成绩,以一个空格隔开。
 

输出描述:

 

按照指定方式输出名字和成绩,名字和成绩之间以一个空格隔开

示例1

输入

3
0
fang 90
yang 50
ning 70

输出

fang 90
ning 70
yang 50

【解题思路】
定义类,表示姓名和成绩 。

实现方法中:先输入人数,再输入排序策略(0或者1),输入多组人名和成绩。

按照排序策略进行排序输出。
 

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;
public class practice29 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        while (scanner.hasNext()) {
            int numPeople = scanner.nextInt();
            int option = scanner.nextInt();
            List<Student> stuList = new ArrayList<>();
            for (int i = 0; i < numPeople; i++) {
                stuList.add(new Student(scanner.next(), scanner.nextInt()));
            }
            if (option == 0) {
                stuList.sort((o1, o2) -> o2.score - o1.score);
            }
            else if (option == 1) {
                stuList.sort((o1, o2) -> o1.score - o2.score);
            }
            for (Student student : stuList) {
                System.out.println(student.name + " " + student.score);
            }
        }
    }
}
class Student {
    public String name;
    public int score;
    public Student(String name, int score) {
        this.name = name;
        this.score = score;
    }
}

Java.成绩排序---(查找和排序)

相关标签: java java