溫州做網(wǎng)站掌熊號seo網(wǎng)站查詢
描述
??? Excel可以對一組紀錄按任意指定列排序?,F(xiàn)請你編寫程序實現(xiàn)類似功能。 ??? 對每個測試用例,首先輸出1行“Case i:”,其中 i 是測試用例的編號(從1開始)。隨后在 N 行中輸出按要求排序后的結果,即:當 C=1 時,按學號遞增排序;當 C=2時,按姓名的非遞減字典序排序;當 C=3 時,按成績的非遞減排序。當若干學生具有相同姓名或者相同成績時,則按他們的學號遞增排序。
輸入描述:
??? 測試輸入包含若干測試用例。每個測試用例的第1行包含兩個整數(shù) N (N<=100000) 和 C,其中 N 是紀錄的條數(shù),C 是指定排序的列號。以下有N行,每行包含一條學生紀錄。每條學生紀錄由學號(6位數(shù)字,同組測試中沒有重復的學號)、姓名(不超過8位且不包含空格的字符串)、成績(閉區(qū)間[0, 100]內的整數(shù))組成,每個項目間用1個空格隔開。當讀到 N=0 時,全部輸入結束,相應的結果不要輸出。
輸出描述:
??? 對每個測試用例,首先輸出1行“Case:”。隨后在 N 行中輸出按要求排序后的結果,即:當 C=1 時,按學號遞增排序;當 C=2時,按姓名的非遞減字典序排序;當 C=3 時,按成績的非遞減排序。當若干學生具有相同姓名或者相同成績時,則按他們的學號遞增排序。
示例1
輸入:
3 1 000007 James 85 000010 Amy 90 000001 Zoe 60
輸出:
Case: 000001 Zoe 60 000007 James 85 000010 Amy 90
代碼如下:
/** Excel排序* 注意:* 按照list中對象的某一屬性排序* Collections.sort(myList,Comparator.comparing(Student::getNo));* */
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Scanner;public class ExcelSort {public static void main(String[] args) {Scanner scanner = new Scanner(System.in);while(scanner.hasNext()) {int n = scanner.nextInt();int i = scanner.nextInt();List<Student> myList = new ArrayList<Student>();for (int j = 0; j < n; j++) {Student student = new Student(scanner.next(),scanner.next(),scanner.nextInt());myList.add(student);}if (i == 1) {Collections.sort(myList,Comparator.comparing(Student::getNo));System.out.println("Case:");for (Student student : myList) {System.out.println(student.no+" "+student.name+" "+student.grade);}}else if (i == 2) {Collections.sort(myList,Comparator.comparing(Student::getName));System.out.println("Case:");for (Student student : myList) {System.out.println(student.no+" "+student.name+" "+student.grade);}}else {Collections.sort(myList,Comparator.comparing(Student::getGrade).thenComparing(Student::getNo));System.out.println("Case:");for (Student student : myList) {System.out.println(student.no+" "+student.name+" "+student.grade);}}}}
}class Student{String no;String name;int grade;public Student(String no,String name,int grade) {this.no = no;this.name = name;this.grade = grade;}public void setNo(String no) {this.no = no;}public String getNo() {return no;}public void setGrade(int grade) {this.grade = grade;}public int getGrade() {return grade;}public void setName(String name) {this.name = name;}public String getName() {return name;}