java中实现Comparable接口实现自定义排序的示例
实例如下所示:
class Student implements Comparable{ String name; int gpa; @Override public int compareTo(Object arg0) { // TODO Auto-generated method stub Student s = (Student)arg0; if(gpa == s.gpa) return name.compareTo(s.name); else if(gpa < s.gpa) return -1; else if(gpa > s.gpa) return 1; else return 0; } } class Test { public static void main(String[] args){ Scanner in = new Scanner(System.in); int n = in.nextInt(); Student[] s = new Student[n]; for(int i = 0;i < n;i ++){ s[i] = new Student(); s[i].name = in.next(); s[i].gpa = in.nextInt(); } Arrays.sort(s); for (Student ss : s) { System.out.println(ss.name); System.out.println(ss.gpa); } } }
以上这篇java中实现Comparable接口实现自定义排序的示例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
java比较器Comparable接口与Comaprator接口的深入分析
java的比较器有两类,分别是Comparable接口和Comparator接口.在为对象数组进行排序时,比较器的作用非常明显,首先来讲解Comparable接口.让需要进行排序的对象实现Comparable接口,重写其中的compareTo(T o)方法,在其中定义排序规则,那么就可以直接调用java.util.Arrays.sort()来排序对象数组,实例如下: 复制代码 代码如下: class Student implements Comparable<Student>{ priv
-
Java 中Comparable和Comparator区别比较
Comparable 简介Comparable 是排序接口.若一个类实现了Comparable接口,就意味着"该类支持排序". 即然实现Comparable接口的类支持排序,假设现在存在"实现Comparable接口的类的对象的List列表(或数组)",则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序.此外,"实现Comparable接口的类的对象"可以用作"有序映射(如Tre
-
对比Java中的Comparable排序接口和Comparator比较器接口
Comparable Comparable 是排序接口. 若一个类实现了Comparable接口,就意味着"该类支持排序". 即然实现Comparable接口的类支持排序,假设现在存在"实现Comparable接口的类的对象的List列表(或数组)",则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序. 此外,"实现Comparable接口的类的对象"可以用作"有序映射(如Tree
-
Java中实现Comparable和Comparator对象比较
当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. A comparison function, which imposes a total ordering on some collection of objects. Comparators can be passed to a sort method (such as Collections.sort or Arrays.sort) to allow pr
-
浅析Java中comparator接口与Comparable接口的区别
Comparable 简介 Comparable 是排序接口. 若一个类实现了Comparable接口,就意味着"该类支持排序". 即然实现Comparable接口的类支持排序,假设现在存在"实现Comparable接口的类的对象的List列表(或数组)",则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序. 此外,"实现Comparable接口的类的对象"可以用作"有序映射(如
-
java中实现Comparable接口实现自定义排序的示例
实例如下所示: class Student implements Comparable{ String name; int gpa; @Override public int compareTo(Object arg0) { // TODO Auto-generated method stub Student s = (Student)arg0; if(gpa == s.gpa) return name.compareTo(s.name); else if(gpa < s.gpa) return
-
JAVA中Comparable接口和自定义比较器示例讲解
自然排序 TreeSet集合在存储数据时有一定的顺序,它会将一些数据进行比较,比较调用的是comparaTo()方法,该方法是在Comparable中定义的,自然排序要求TreeSet集合中存储的数据必须实现Comparable接口,并且重写ComparaTo()方法 public class 自然排序 { public static void main(String[] args) { //定义一个TreeSet集合 TreeSet treeSet = new TreeSet(); Teach
-
Java中的Comparable和Comparator接口
目录 一. Comparable接口 1. Comparable简介 2. 为什么要实现Comparable接口 3. Comparable的实际应用 二. Comparator接口 1. Comparator简介 2. Comparator接口的实际运用 三. Comparable和Comparator的比较 一. Comparable接口 1. Comparable简介 Comparable是排序接口. 若一个类实现了Comparable接口,就意味着该类支持排序. 实现了Comparabl
-
详解JAVA使用Comparator接口实现自定义排序
1.原则 Comparator接口可以实现自定义排序,实现Comparator接口时,要重写compare方法: int compare(Object o1, Object o2) 返回一个基本类型的整型 如果要按照升序排序,则o1 小于o2,返回-1(负数),相等返回0,01大于02返回1(正数) 如果要按照降序排序,则o1 小于o2,返回1(正数),相等返回0,01大于02返回-1(负数) import java.util.ArrayList; import java.util.Compar
-
详解JAVA中的Collection接口和其主要实现的类
Collection是最基本的集合接口,一个Collection代表一组Object,即Collection的元素(Elements).一些Collection允许相同的元素而另一些不行.一些能排序而另一些不行.Java SDK不提供直接继承自Collection的类,Java SDK提供的类都是继承自Collection的"子接口"如List和Set,详细信息可见官方文档http://tool.oschina.net/uploads/apidocs/jdk-zh/java/util/
-
java中抽象类和接口的相同和不同点介绍
目录 前言 一.抽象类是什么? 二.接口是什么? 三.抽象类和接口的异同点 总结 前言 本文简单介绍抽象类,接口以及它们的异同点,另附简单的代码举例. 一.抽象类是什么? 在 Java 语言中使用 abstract class 来定义抽象类.抽象类是不能被实例化的,即不能用new关键字来实例化对象.包含抽象方法的一定是抽象类,但抽象类不一定包含抽象方法.如果一个子类实现了父类(抽象类)的所有抽象方法,那么该子类可以不必是抽象类,否则就是抽象类.抽象类中的抽象方法的修饰符只能为public或者pr
-
java中的interface接口实例详解
java中的interface接口实例详解 接口:Java接口是一些方法表征的集合,但是却不会在接口里实现具体的方法. java接口的特点如下: 1.java接口不能被实例化 2.java接口中声明的成员自动被设置为public,所以不存在private成员 3.java接口中不能出现方法的具体实现. 4.实现某个接口就必须要实现里面定义的所有方法. 接下来看一个实现接口的案例: package hello; interface competer{ //定义接口 void set_comp
-
Java中抽象类和接口的区别_动力节点Java学院整理
接口 1 因为java不支持多重继承,所以有了接口,一个类只能继承一个父类,但可以实现多个接口,接口本身也可以继承多个接口. 2 接口里面的成员变量默认都是public static final类型的.必须被显示的初始化. 3 接口里面的方法默认都是public abstract类型的.隐式声明. 4 接口没有构造方法,不能被实例化. 5 接口不能实现另一个接口,但可以继承多个接口. 6 类如果实现了一个接口,那么必须实现接口里面的所有抽象方法,否则类要被定义为抽象类. 抽象类 1 如果将一个类
-
详解Java 中的 AutoCloseable 接口
一.前言 最近用到了 JDK 7 中的新特性 try-with-resources 语法,感觉到代码相对简洁了很多,于是花了点时间详细学习了下,下面分享给大家我的学习成果. 二.简单了解并使用 try-with-resources语法比较容易使用,一般随便搜索看下示例代码就能用起来了.JDK 对这个语法的支持是为了更好的管理资源,准确说是资源的释放. 当一个资源类实现了该接口close方法,在使用try-with-resources语法创建的资源抛出异常后,JVM会自动调用close 方法进行资
-
Java中抽象类和接口介绍
目录 1.抽象类 1.1 什么是抽象类? 1.2 抽象类属于什么类型? 1.3 抽象类怎么定义? 1.4 抽象方法 2.接口 2.1 关于接口 2.2 接口怎么定义? 2.3 接口基础语法 总结 1.抽象类 1.1 什么是抽象类? 1.1.1 对抽象类的理解 1.1.2 关于抽象类 类与类之间具有共同特征,将这些共同特征提取出来,形成的就是抽象类: 类本身是不存在的,属于抽象类无法创建对象[无法实例化]: 抽象类是用来被子类继承的: finial关键字和abstract关键字不能同时出现: 抽象
随机推荐
- Docker搭建本地私有仓库的详细步骤
- Lua判断数据类型的方法
- 深入mysql存储过程中表名使用参数传入的详解
- oracle 12c创建可插拔数据库(PDB)与用户详解
- extjs 列表框(multiselect)的动态添加列表项的方法
- javascript操作excel生成报表全攻略
- JS小练习代码之二第1/2页
- 精通ASP.NET中弹出窗口技术
- 详解JavaScript正则表达式之分组匹配及反向引用
- Javascript编程之继承实例汇总
- PHP文件上传类实例详解
- php取整函数ceil,floo,round的用法及介绍
- Python获取当前页面内所有链接的四种方法对比分析
- 浅谈javaSE GUI (Action事件)
- 清除熊猫烧香病毒的批处理脚本XP版 转载
- Android中关于JSON相关应用分析
- 任意位置显示html菜单
- Yii2使用$this->context获取当前的Module、Controller(控制器)、Action等
- Android中用onSaveInstanceState保存Fragment状态的方法
- 结合mint-ui移动端下拉加载实践方法总结