前言

刚学习java,就想着在oj做题上时也用java,顺便熟悉一下java的语法。最近学到集合,突然想起之前在scnu oj上做过的一道多级排序的题。于是就动手用java写了一遍。

题目

代码

import java.text.DecimalFormat;
import java.util.Iterator;
import java.util.Scanner;
import java.util.TreeSet;//2016 201620050 Whengcheng 3.33
public class Main
{public static class Student implements Comparable<Student>{int grade;long num;String name;double score; //由于只是比较,没有运算,并不会出现精度丢失的问题public Student() {}public Student(int grade, long num, String name, double score) {this.grade = grade;this.num = num;this.name = name;this.score = score;}@Overridepublic String toString() {DecimalFormat df=new DecimalFormat("0.00");return grade+" "+num+" "+name+" "+df.format(score);}@Overridepublic int compareTo(Student stu) {int flag1=Integer.compare(grade, stu.grade);if(flag1!=0) //年级不同return flag1;else //年级相同{int flag2=Double.compare(score, stu.score);if(flag2!=0) //成绩不同return -flag2; //成绩降序else //成绩相同return Long.compare(num, stu.num); }}}public static void main(String[] args) {TreeSet<Student> set=new TreeSet<>();Scanner sc=new Scanner(System.in);int n=sc.nextInt();for(int i=0;i<n;i++){int grade=sc.nextInt();long num=sc.nextLong();String name=sc.next();double score=sc.nextDouble();Student stu=new Main.Student(grade, num, name, score);set.add(stu);}Iterator<Student> it=set.iterator();while(it.hasNext())System.out.println(it.next());}
}

备注

对比一下C/C++和Java的时间。。。

Java实现多级排序相关推荐

  1. mysql vue 菜谱_vue+ java 实现多级菜单递归效果

    效果如图: 大概思路:树形视图使用的是vue官方事例代码,java负责封装数据,按照vue官方事例的数据结构封装数据即可.有两个需要关注的点: 1.官方事例的数据结构是一个对象里面包含着集合,而不是一 ...

  2. java 怎么自定义排序_Java如何实现List自定义排序

    Java如何实现List自定义排序,自定义,即为,详细内容,相关文章,更多关于 Java如何实现List自定义排序 易采站长站,站长之家为您整理了Java如何实现List自定义排序的相关内容. 实体类 ...

  3. python sort 多级排序_sort、sorted排序技巧(多级排序)

    Python list内置sort()方法用来排序,也可以用python内置的全局sorted()方法来对可迭代的序列排序生成新的序列. 示例: from operator import itemge ...

  4. java中自然排序和比较器排序

    这里所说到的Java中的排序并不是指插入排序.希尔排序.归并排序等具体的排序算法.而是指执行这些排序算法时,比较两个对象"大小"的比较操作.我们很容易理解整型的 i>j 这样 ...

  5. C++结构体多级排序的三种方法

    C++结构体多级排序的三种方法 struct node{int chinese,math;char name[15]; }; 需求:按数学成绩从大到小排序  1.自定义比较器 //自定义比较函数 bo ...

  6. java List实体排序

    对于java实体集合排序这里总结了三种方法,第一种是通过原生支持的Comparator做排序,第二种是通过java8的Lambda表达式进行排序,第三种是使用apache-common的工具包进行排序 ...

  7. python sort 多级排序_Python使用sort和class实现的多级排序功能示例

    本文实例讲述了Python使用sort和class实现的多级排序功能.分享给大家供大家参考,具体如下: # -*- coding:utf-8 -*- import random class Temp: ...

  8. android studio插入数据表中没有_学Java能拿高薪吗 Java中常见排序算法有哪些

    学Java能拿高薪吗?Java中常见排序算法有哪些?作为老牌编程语言,Java拥有广阔的市场占有率,几乎90%以上的大中型互联网应用系统在服务端开发都会首选Java.为了加入到Java这一高薪行业,很 ...

  9. 用Java对HashMap排序

    介绍: 在本教程中,我们将学习如何对Java HashMap进行排序. 我们可以按键或按值对HashMap进行排序. 我们将讨论这两种策略. 对Java 为了跟上本文的其余部分,我们首先构造一个Has ...

最新文章

  1. poj3481(map的使用)
  2. 产业|中国电子学会发布《机器人十大新兴应用领域(2018-2019年)》
  3. Ajax兼容处理+发送请求+接收返回信息
  4. Spring Boot【快速入门】
  5. Hive的union和join操作
  6. math.h头文件中声明了常用的一些数学运算
  7. 什么是python语言的动态类型机制_理解Python的Dynamic typing
  8. android读取excel文件_python里读写excel等数据文件的几种常用方式
  9. 提高篇 第五部分 动态规划 第1章 区间类动态规划
  10. elk错误:Too Many Requests
  11. C++课程设计班级管理系统
  12. 智课雅思词汇---十九、前缀se是什么意思
  13. 2022软件项目管理案例教程期末考知识点汇总(期末复习用)
  14. 2021京东618活动脚本App和电脑版最新版(建议使用app版)
  15. 计算机考研各科时间安排,计算机考研专业课复习全程的时间安排
  16. html5家谱制作模板,Word如何做家谱世系图?
  17. 操作系统---处理器调度
  18. transition 用法
  19. CRM项目半途而废 “烂摊子”该如何收拾?
  20. 苹果系统python读取文件_python中文件的读取与写入以及os模块

热门文章

  1. 最流行的五大数据模型工具
  2. JAVA获取股票实时KDJ,炒股10年,这是我见过最简单透彻的KDJ分析【建议收藏】
  3. 分享一个免费分流抢票软件!一键全自动抢票
  4. Linux环境问题_adb shell无法进入设备内部
  5. java中available用法,java – 使用available()时没有获取整个数据
  6. android蓝牙门禁,BleAgent蓝牙门禁SDK文档
  7. java wsimport方式生成webservice客户端代码
  8. python serial库文件下载_Pyserial python 串口驱动库pyserial - 下载 - 搜珍网
  9. 使用Python获取终端的计算机名、ip地址及mac地址
  10. 3DS MAX 2022下载及安装教程 3dmax软件下载安装