如果有学生信息
姓名 成绩
Zhang 80
Zhang 68
Zheng 71
Li 80
需要先按照姓名的字母顺序排序,如果字母相同,则按照成绩由小到大排序,这个在java中怎么实现呢?
输出结果如下
姓名 成绩
Li 80
Zhang 68
Zhang 80
Zheng 71
package com.kingsoft.main;
import java.util.Arrays;
public class SortTest {
public static void main(String[] args) {
Student s1 = new Student("Zhang", 80);
Student s2 = new Student("Zhbng", 68);
Student s3 = new Student("Zhcng", 71);
Student s4 = new Student("Li", 80);
Student[] ss = { s1, s2, s3, s4 };
// 以上是测试的数组
for (Student s : ss)
System.out.println(s);
// 这个就是排序了
Arrays.sort(ss);
System.out.println("=============");
for (Student s : ss)
System.out.println(s);
}
}
/**
*
* 类Student实现 Comparable接口,以方便排序
*
*
*/
class Student implements Comparable<Student> {
public String name;
public int point;
public Student() {
}
public Student(String name, int point) {
this.name = name;
this.point = point;
}
/**
*
* 实现Comparable<Student>接口的方法
*
*/
public int compareTo(Student o) {
int stringCompare = this.name.compareTo(o.name);
if (stringCompare == 0) {
// 如果名字比较相同,返回的是成绩的比较结果
return this.point - o.point;
} else {
// 如果名字比较不同,直接返回比较结果
return stringCompare;
}
}
/*
* 方便打印
*/
public String toString() {
return this.name + "\t" + point;
}
}
分享到:
相关推荐
八、输入一数组,按照英文26个字母顺序,输出每个数字对应的字母,如果查不到,则输出?。如[1,3,30],输出ac?。 九、把数组中的1-26的数字映射成a-z的小写字母 如果输入其他数字,则在页面上...
* Java 中的标识符包括:字母、数字、下划线、美元符号 * 标识符的命名规则包括:首字母只能是字母或下划线,不能以数字开头 九、Java 输入输出 * Java 中的输入输出包括:System.in、System.out、System.err * ...
具体来说,对于输入的字符串中的每个字符,如果是大写字母,则转换为小写字母;如果是小写字母,则转换为大写字母。最终输出的是经过转换后的字符串的逆序形式。 #### 设计思路 为了完成这一任务,我们首先需要了解...
02. 输入三个整数,按从大到小的顺序输出。 知识点:Java 中的整数类型、if 语句、逻辑运算符。 03. 给出一个百分制的成绩,要输出成绩等级“A”、“ B”,“ C”,“ D”,“ E”。 知识点:Java 中的整数类型、...
converseNumber.java 逆向输出数字 daffodilNumber.java 求水仙花数 division.java 演示整除结果 errorCompoundVariable.java 错误使用局部变量示例 factorial.java 求阶乘 Fibonacci.java 求Fiblnacci数列 ...
这段代码会按字母顺序排序`text`中的单词。 关于压缩包中的文件,如`c04312039.java`、`H_201.java`、`homework2_2.java`、`Input.java`和`StringOpt.java`,它们可能是实现以上功能的源代码。`Input.java`可能包含...
- **计算机存储规则**:Java中的数据在内存中以二进制形式存储,遵循特定的字节顺序(Big-Endian或Little-Endian)。 - **数据类型**:Java有两大类数据类型,基本数据类型(如整型、浮点型、字符型、布尔型)和...
System.out.println("\n相反顺序输出:"); for (int j = data.length - 1; j >= 0; j--) System.out.print(data[j] + ","); } } ``` 总结来说,这些题目覆盖了Java中类的继承、方法的重写以及基本的数据处理...
HSDIS查看Java代码的汇编指令 java -XX:+UnlockDiagnosticVMOptions -XX:+PrintAssemble 使用 LockSupport.park()and unpark() public static void main(String[] args) { char[] aI = 1234567.toCharArray(); ...
7. 输入一串字符,直到输入一个星号为止,统计(输出)其中的字母个数和数字字符个数。 Java知识点:字符串处理、字符操作、循环语句 8. 计算斐波那契分数序列前n项之和。 Java知识点:斐波那契数列、循环语句、...
- **解析**:在Java中,标识符可以由字母、数字、下划线`_`或美元符号`$`组成,并且必须以字母、下划线或美元符号开头。因此,`a1`、`$1`、`_1`都是合法的标识符。但是,数字不能作为标识符的第一个字符,所以`11`...
在Java中,可以在同一个类中定义多个同名的方法,这些方法可以通过不同的参数列表来区分,包括参数的数量、类型或者顺序。返回类型不是区分重载方法的标准。 **示例题目的选项解析:** - A. 隐藏(Hiding)通常指的...
10. 简单的程序逻辑设计:练习题要求编写一个程序,该程序按照逻辑顺序执行,从提示用户输入到根据输入条件输出结果。 这些知识点共同构成了Java编程基础的组成部分,通过对这些知识点的学习和理解,可以更好地掌握...
Java中的变量命名遵循一定的规范,变量名不能以数字开头,必须以字母、下划线或美元符号($)开始,后面可以跟字母、下划线或数字。A和C是错误的,B是正确的。Java中区分大小写,所以A和a被视为两个不同的变量,D也是...
在Java语言中,标识符可以由字母、数字、下划线“_”和美元符号“$”组成,但其首字符不能是数字。此外,标识符是大小写敏感的,这意味着相同的字母组合但大小写不同将被视作不同的标识符。在实际编程中,需要避免...
在Java中,标识符可以由字母、下划线或美元符号开始,后续可以跟随数字、字母、下划线或美元符号。区分大小写是Java中的一个关键规则,因此"thisone"和"Thisone"是两个不同的标识符。需要注意的是,关键字是Java...
异常处理是Java中的一个重要特性,用于处理程序运行过程中发生的错误情况。 - **异常基本概念**:异常是在程序执行过程中发生的问题。 - **捕获异常**:使用try-catch语句块来捕获异常。 - **处理异常**:可以抛出...
2. 合法的 Java 标识符可以包含字母、数字和下划线,但不能以数字开头。 Java 原始数据类型 1. 包装类 Double 不是 Java 的一种原始数据类型。 2. 浮点数可以精确的表示整数,比如浮点数 1.0 和整数 1 是等同的。 ...
- **解析**: 在Java中,子类的构造过程遵循一定的顺序:先初始化父类的属性,然后是父类的构造方法,接着是子类的属性,最后是子类的构造方法。因此,正确答案是 D: 2、3、1、4。 #### 7. 枚举类型的概念 - **知识...