怎么能保持同步啊 从键盘输入10个学生的姓名和成绩,用选择法按成绩降序排序并输出(要求姓名和成绩对应关系保持不变)。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 使用TreeMap,key存储姓名,value存储成绩 TreeMap是按key排序,要用的话也要key存成绩类似场景,创建一个学生类然后实现Comparable接口更好 TreeMap是按key排序,要用的话也要key存成绩类似场景,创建一个学生类然后实现Comparable接口更好可以按照value排序的,entrySet放在一个新的List再排序 我的建议是打个顺序标记作为key然后value为名称和成绩 package net.csdn.sample;import java.util.Scanner;public class SelectSort { /** * 从键盘输入10个学生的姓名和成绩,用选择法按成绩降序排序并输出(要求姓名和成绩对应关系保持不变)。 * @param args */ public static void main(String[] args) { Student[] students = new Student[10]; // 定义大小为10数组,存放输入的10个学生 Scanner in = new Scanner(System.in); for (int i = 0; i < 10; i++) { System.out.println("请输入第" + (i+1) + "个学生姓名和分数(用,隔开):"); String str = in.nextLine(); String[] strs = str.split(","); String name = strs[0]; Integer score = Integer.parseInt(strs[1]); Student student = new Student(name, score); students[i] = student; } System.out.println("排序前:"); for (Student student : students) { System.out.println(student); } SelectSortDesc(students); System.out.println("排序后:"); for (Student student : students) { System.out.println(student); } } /** * 选择排序方法 * @param students */ public static void SelectSortDesc(Student[] students) { for (int i = 0; i < students.length-1; i++) { for (int j = i+1; j < students.length; j++) { if(students[j].getScore() > students[i].getScore()){ Student tempStudent = students[i]; students[i] = students[j]; students[j] = tempStudent; } } } } } /** * 定义学生类 * @author lx666 * */class Student { private String name; private int score; public Student(String name, int score) { super(); this.name = name; this.score = score; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getScore() { return score; } public void setScore(int score) { this.score = score; } @Override public String toString() { return this.name + "," + this.score; } } 线程池相关--同一个线程是否可以使用多次 java File 定义中的URI问题 一个小编程题,对了一半,问为什么没有完全对 enum有valuse()这个方法吗? 十万火急!高手指点#####指点!!!!socket通信如何接收ascii码?在线等待,帮帮忙好吧?周末前一定结帖! 如何高效阅读原码 关于窗口的问题 JAVA技术交流群(10594568) Java匿名的内部类为什么不完全使用继承,而只能具有继承的功能? 这是什么格式?我给忘了,求速回 hibernate 使用 JAVA基础总结笔记,每天更新
类似场景,创建一个学生类然后实现Comparable接口更好
类似场景,创建一个学生类然后实现Comparable接口更好可以按照value排序的,entrySet放在一个新的List再排序
* 从键盘输入10个学生的姓名和成绩,用选择法按成绩降序排序并输出(要求姓名和成绩对应关系保持不变)。
* @param args
*/
public static void main(String[] args) {
Student[] students = new Student[10]; // 定义大小为10数组,存放输入的10个学生
Scanner in = new Scanner(System.in);
for (int i = 0; i < 10; i++) {
System.out.println("请输入第" + (i+1) + "个学生姓名和分数(用,隔开):");
String str = in.nextLine();
String[] strs = str.split(",");
String name = strs[0];
Integer score = Integer.parseInt(strs[1]);
Student student = new Student(name, score);
students[i] = student;
}
System.out.println("排序前:");
for (Student student : students) {
System.out.println(student);
}
SelectSortDesc(students);
System.out.println("排序后:");
for (Student student : students) {
System.out.println(student);
}
}
/**
* 选择排序方法
* @param students
*/
public static void SelectSortDesc(Student[] students) {
for (int i = 0; i < students.length-1; i++) {
for (int j = i+1; j < students.length; j++) {
if(students[j].getScore() > students[i].getScore()){
Student tempStudent = students[i];
students[i] = students[j];
students[j] = tempStudent;
}
}
}
}
}
/**
* 定义学生类
* @author lx666
*
*/
class Student { private String name;
private int score;
public Student(String name, int score) {
super();
this.name = name;
this.score = score;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getScore() {
return score;
}
public void setScore(int score) {
this.score = score;
} @Override
public String toString() {
return this.name + "," + this.score;
}
}