Java 学生名单排序 comparable接口
2019.10.31
1.学生名单排序
```java
import java.util.*;
import java.io.*;public class proA {public static void main(String[] args) {Scanner cin=new Scanner(System.in);ArrayList<Student> list = new ArrayList<Student>();while(cin.hasNext()) {long t1=cin.nextLong();String t2=cin.next();String t3=cin.next();list.add(new Student(t1,t2,t3));}Collections.sort(list);for(int i=0;i<list.size();i++) {System.out.println(list.get(i));} }
}
class Student implements Comparable<Student>{private long num;private String name;private String xing;public Student(long num, String name, String xing) {super();this.num = num;this.name = name;this.xing = xing;}public long getNum() {return num;}public void setNum(long num) {this.num = num;}public String getName() {return name;}public void setName(String name) {this.name = name;}public String getXing() {return xing;}public void setXing(String xing) {this.xing = xing;}public int compareTo(Student o) {return (int) (this.num-o.num);}@Overridepublic String toString() {return num+" "+name+xing;}}
这边刚开始没有写Student的toString(),导致输出结果如下图:
加上toString()后,输出正确:
2.comparable接口
可借鉴资料:
Java 中 Comparable 接口的意义和用法.
自定义类中Comparable接口的实现:
class Student implements Comparable{String id;String familyName;String givenName;public int compareTo(Object o) {Student s=(Student)o;return this.id.compareTo(s.id); //如果是id是long的话,那么可以return this.id-s.id}
}
class Student implements Comparable<Student>{String id;String familyName;String givenName;public int compareTo(Student o) {return this.id.compareTo(o.id); //如果是id是long的话,那么可以return this.id-s.id}
}
Java 学生名单排序 comparable接口相关推荐
- Java 对象排序 Comparable接口和比较器Comparator的使用
我这里使用的是Treeset存储的学生信息,定义了学生类,对学生信息进行一个排序: 方法一 对象排序的的方法是,让元素所属类实现 Comparable 接口 ,重写 comparaTo(To) 方法 ...
- Java学生成绩排序输出的三种不同方法
要实现学生成绩的排序,要从两方面来考虑如何设计程序. 第一方面是选择存储方式 第二方面是选择什么样的排序方式 以下是三种不同类型的实现: 使用对象数组存储学生信息,冒泡法实现排序 使用List存储学生 ...
- 排序-Comparable接口
给student对象排序: package com.example.suanfademo.sort; //1.定义一个学生类student,具有年龄age和姓名username两个属性,并通过Comp ...
- java 学生成绩排序
编写一个应用程序,用户分别从两个文本框输入学术的姓名和分数,程序按成绩排序将这些学生的姓名和分数显示在一个文本区中. 程序运行效果如图: import java.awt.BorderLayout; i ...
- [Java基础]自然排序Comparable的使用
代码如下: package ComparablePack;public class Student implements Comparable<Student>{private Strin ...
- 数据结构java学生成绩排序_数据结构学习--Java简单排序
冒泡排序需要元素每次遍历都从最底部向上冒泡,找到适合的位置后,该位置之后的元素继续向上冒,这样一趟排序结束后,将冒出最大或者最小值. 选择排序需要元素从0号位开始向上遍历一遍,并将最小值放到0号位上, ...
- Java 中类的比较与排序方法(应用Comparable接口与Comparator接口)通俗易懂
引言 在平时写Java的程序的时候,如果要进行一些基本类型的变量的比较,可以很方便得调用Math.max().Math.min()等方法,如果要对数组或者列表进行排序,也可以用Arrays.sort( ...
- Java基础之Comparable接口和Comparator接口的比较
前言 就是普普通通的写这么一篇文章,java集合类估计java程序猿都知道,那就写一点小众的. 在实际应用中,我们往往有需要比较两个自定义对象大小的地方.而这些自定义对象的比较,就不像简单的整型数据那 ...
- Java运用自身排序算法将数组或容器进行随机打乱。
基本思路:数组调用Arrays.sort(T[] a,Comparator<? super T> c),对Comparator进行重写.运用Random类 ,实现对数字的随机排序. 对数字 ...
最新文章
- java 提取内容并排序
- 移动端前端常见的触摸相关事件touch、tap、swipe等整理
- php 生成css文件怎么打开,php生成html文件的多种步骤介绍
- 【VB.NET】VB.NET窗体与控件问题的解答
- 展望2015把C++版本的掼蛋程序写好
- Qt文档阅读笔记-Simple Anchor Layout Example解析
- code blocks代码性能分析_Julia系列教程13--如果写出高性能的Julia代码
- 国产操作系统剽窃Linux内核可耻!
- 【C++】指针遍历二维数组若干种方法小结
- Excel如何生成11位随机数,包含大小写字母和数字
- Linux的capability分析
- linux gem安装软件,安装gem报错
- svn绿色符号消失的解决办法
- 查看Ubuntu下的U盘
- MATLAB实现三角剖分(Delaunay)算法
- 始终从最不易改变的方面开始
- PS基础操作之照片处理
- gunicorn、uwsgi、uvicorn认识
- 基于Lanczos方法的矩阵双对角化或三对角化
- Esxi虚拟机安装黑群晖实践
热门文章
- dango shell 操作crud
- 浏览器中网址访问过程解析
- python 制作正态分布图,画出拒绝域
- 基于Jsp的手机应用商店的设计与实现mysql
- 计算机24游戏怎么玩,外媒评24款史上最好玩的策略游戏 投身宏伟场景玩到爆
- unbantu...
- 北京电信整顿“一机双号” 通信管理局要求清理原库
- 快速分析极兔快递物流发件到件超过36小时的时间差
- 解决 OneNote 项目符号快捷键 Ctrl+. 在 Windows 10 下无效问题
- Redmi首款超高性价比笔记本明日开售 售价3999元起