
7-1 jmu-Java-04面向对象进阶-01-接口-Comparable (5分)
读取输入的整数n,表示要创建的对象数量。 创建一个PersonSortable数组,初始化为大小为n。 读取n行输入,每行包含一个人的姓名和年龄,并将其转化为PersonSortable对象,添加到数组中。 使用Arrays.sort方法对数组进行排序。 遍历排序后的数组,输出每个对象的字符串表示。 最后输出PersonSortable类所实现的所有接口。
发布日期:2021-05-08 02:32:59
浏览次数:21
分类:精选文章
本文共 2594 字,大约阅读时间需要 8 分钟。
PersonSortable类是一个实现Comparable接口的Java类,用于对对象进行排序。该类主要用于按姓名和年龄对人对象进行升序排序。具体来说,如果两个对象的姓名相同,则按年龄升序排列;如果年龄也相同,则按姓名升序排列。
类结构
PersonSortable类包含两个私有属性:name和age。同时,类提供了一个有参构造函数用于初始化对象。类还定义了toString方法用于返回对象的字符串表示。由于该类实现了Comparable接口,因此可以直接通过Arrays.sort方法对数组进行排序。
类代码
import java.util.Arrays;import java.util.Comparator;public class PersonSortable implements Comparable{ private String name; private int age; public PersonSortable(String name, int age) { this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } @Override public int compareTo(PersonSortable peo) { // 先按name升序排列,如果name相同则按age升序排列 if (this.name.compareTo(peo.name) > 0) { return 1; } else if (this.name.compareTo(peo.name) < 0) { return -1; } else { // name相同,按age升序排列 if (this.age > peo.age) { return 1; } else if (this.age < peo.age) { return -1; } else { return 0; } } } @Override public String toString() { return name + "-" + age; }}
使用说明
在main方法中,可以按照以下步骤使用PersonSortable类:
示例代码
import java.util.Arrays;import java.util.Comparator;import java.util.Scanner;public class Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); int n = cin.nextInt(); PersonSortable[] stu = new PersonSortable[n]; for (int i = 0; i < n; i++) { String name = cin.next(); int age = cin.nextInt(); stu[i] = new PersonSortable(name, age); } Arrays.sort(stu); for (PersonSortable p : stu) { System.out.println(p.toString()); } System.out.println(Arrays.toString(PersonSortable.class.getInterfaces())); }}
输出示例
输入样例:
5zhang 15zhang 12wang 14Wang 17li 17
输出样例:
Wang-17li-17wang-14zhang-12zhang-15comparable
注意事项
- PersonSortable类中的compareTo方法确保了先按name升序排列,name相同则按age升序排列。
- 在main方法中,确保正确读取输入数据,并将其转化为PersonSortable对象。
- 使用Arrays.sort方法对数组进行排序,直接使用PersonSortable实现了Comparable接口,无需额外处理。
- 最后通过Arrays.toString方法获取PersonSortable类实现的所有接口,并将结果输出。
发表评论
最新留言
第一次来,支持一个
[***.219.124.196]2025年04月02日 19时59分49秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
针对单个网站的渗透思路
2019-03-05
Typescript 学习笔记六:接口
2019-03-05
02、MySQL—数据库基本操作
2019-03-05
OpenJDK1.8.0 源码解析————HashMap的实现(一)
2019-03-05
MySQL-时区导致的时间前后端不一致
2019-03-05
2021-04-05阅读小笔记:局部性原理
2019-03-05
go语言简单介绍,增强了解
2019-03-05
python file文件操作--内置对象open
2019-03-05
架构师入门:搭建基本的Eureka架构(从项目里抽取)
2019-03-05
MongoDB 快速扫盲贴
2019-03-05
one + two = 3
2019-03-05
sctf_2019_easy_heap
2019-03-06
PyQt5之音乐播放器
2019-03-06
Redis进阶实践之十八 使用管道模式提高Redis查询的速度
2019-03-06
SQL注入
2019-03-06
MPI Maelstrom POJ - 1502 ⭐⭐ 【Dijkstra裸题】
2019-03-06
Problem 330A - Cakeminator (思维)
2019-03-06
LeetCode75 颜色分类 (三路快排C++实现与应用)
2019-03-06
C语言+easyX图形库的推箱子实现
2019-03-06
调试vs2019代码的流程
2019-03-06