java Comparable 比较器的使用】的更多相关文章

/** * */ package com.mindreader; import java.util.Arrays; /** * @作者 Mind reader * @内容 对象数组排序——Comparable比较器的使用 * @项目名 arrays_demo * @日期 2016年5月11日 * @时间 下午1:48:04 * */ /* * 如果要对对象数组进行排序,需要实现Comparable接口并重写他的compareTo()方法,该方法无需显示调用,Arrays.sort()会自动调用的…
Arrays只适合一个数组/对象内的数值进行比较, Comparable比较器(Compara)适合数组,对象,队列等排序, Comparable是一个接口类,实现此接口必须复写:compareTo 方法, compareTo方法会返回三个值:1,0,-1,可以利用这三个值进行排序 //比较器 class Student2 implements Comparable<Student2>{ private int strno; private String name; private int a…
//定义二叉操作类 class BinaryTree{ class Node{ private Node left; //左指数 private Node right; //右指数 private Comparable data; public Node(Comparable<?> data) { this.data = data; } //二叉数据比较,大的放在右边,小的放在左边 public void addNode(Node newNode) { //放在左边 if( newNode.d…
Comparable比较器排序远离实现 package test.java.api.api13; /** * 手工实现二叉树的比较算法: 第一遍感觉很神秘,但是真正自己写下来,就感觉很简单,理解就好: 主要一下两点: 第一点:[设置一个根节点] * 第二点:新增节点处理:比根节点小,放在左子树(如果左子树不存在,直接放在左子树,如果存在,用已经存在的左子树的节点递归调用) * 第三点:新增节点处理:比根节点大或等于,放在右子树(如果右子树不存在,直接放在右子树,如果存在,用已经存在的右子树的节点…
1.Comparable比较器 在Arrays类中存在sort()排序方法,此方法可以直接对对象数组进行排序. public static void sort(Object[] a 根据元素的自然顺序对指定对象数组按升序进行排序.但前提是数组中的所有元素都必须实现 Comparable 接口,并覆写compareTo()方法指定对象排序的规则. Comparable接口定义于java.lang包中:public interface Comparable<T>;int compareTo(T t…
有时候需要对Collection或者不为单一数字的Array进行比较,有两种方法,1是实现Comparable接口,2是实现Comparator接口. 1.ComParable接口 Comparable接口的定义如下:public interface Comparable<T> {    public int compareTo(T o);}此方法返回一个int类型的数据,但是此int的值只能是一下三种:1:表示大于-1:表示小于0:表示相等 实例: package zy.java.lang;…
一.定制排序:java.util.Comparator 接口 强行对某个对象 collection 进行整体排序 的比较函数.可以将 Comparator 传递给 sort 方法(如 Collections.sort 或 Arrays.sort),从而允许在排序顺序上实现精确控制.还可以使用 Comparator 来控制某些数据结构(如有序 set或有序映射)的顺序,或者为那些没有自然顺序的对象 collection 提供排序. 当元素的类型没有实现java.lang.Comparable接口而…
在Java中有两个比较器:Comparable.Comparator 对于Integer.Double等等类型,可以直接对他们进行比较,因为已经实现了比较的方式,然而在平时常常会面临需要对集合进行排序的情况,这种情况下我们需要人工定义Java比较器,告诉程序两个对象如何比较大小. Comparable Comparable称为内部比较器,因为我们创建需要排序的类还要实现这个类,在创建之初就要人工规定好了排序方式. 实现这个类,然后我们需要重写他的compareTo方法,传递一个类进入,与当前本身…
/*Comparable 是java.lang中的一个接口,所以是默认导入的,不需要显示的导入. *如果你先直接在本类中实现排序,那么可以直接实现该接口(例如:public class ComparaUser implements Comparable<ComparaUser>) *然后复写 int compare(Object o)  提醒:如果在实现接口的时候指明了相应的类型,则这里的Object可以换成对应的类型,避免了强转. int compareTo(ComparaUser user…
Comparable: 一个类实现了Camparable接口则表明这个类的对象之间是可以相互比较的,这个类对象组成的集合就可以直接使用sort方法排序,sort方法调用compareTo()方法里定义的方法进行排序,Comparable的缺点是只能按一种方式排序 package object; import java.util.*; public class Comparator1 implements Comparable<Comparator1>{ public int i; public…
一.比较器Comparable和Comparator 上一篇博客介绍了工具类Arrays工具类 .我们可以对基本类型的数组调用Arrays.sort()函数来进行数组的排序.排序操作在日常开发中经常要使用到.那么String类和自定义类能不能使用Arrays.sort()来进行排序呢.下面我们来试试,如下: Java代码 publicclassMystring { publicstaticvoidmain(String[] args) { String []a={"早上","…
Comparable使一个class具备不同实例间进行比较的行为.这些对象的集合,可作为Collections.sort或Arrays.sort的参数 Comparator可以看成一种算法的实现,将算法和数据分离.实现Comparator的可以作为Collections.sort或Arrays.sort的参数 都可以多条件排序.类似于order by field1,field2都是接口 import java.util.Arrays; import java.util.Comparator; p…
1.Comparable简介 此接口对实现它的每个类的对象强加一个总排序.这种排序被称为类的自然排序,类的compareTo方法被称为其自然比较方法.可以通过 Collections.sort(和Arrays.sort)自动对实现此接口的对象的列表(和数组)进行排序.实现此接口的对象可用作有序映射中的键或有序 集中的元素,而无需指定比较器. 注:若一个类实现了该接口,说明该类本身是支持排序的.在java中倡导所有实现Comparable接口的类都应该保持与 equals()一致的排序顺序,因此还…
Comparable 简介 Comparable 是排序接口. 若一个类实现了Comparable接口,就意味着“该类支持排序”.  即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序. 此外,“实现Comparable接口的类的对象”可以用作“有序映射(如TreeMap)”中的键或“有序集合(TreeSet)”中的…
Comparable接口和Comparator接口都是用来定义集合中的排序的,只是Comparable是在集合内部定义排序的实现,Comparator是在集合外部排序的实现. Comparable 的在java.util中Comparator 的在java.lang中 Comparable接口的实现表明这个类的对象之间是可以相互比较的,这个类对象组成的集合就可以直接使用sort方法排序. Comparator可以看成一种算法的实现,将算法和数据分离,Comparator也可以在下面两种环境下使用…
java中的比较器有两种: 1.实体类实现Comparable接口,并实现其中的compareTo方法 2.在外部定义实现Comparator接口的比较器类,并实现其中的compare方法 Comparable接口 Person类源码: package test; public class Person implements Comparable<Person> { private Integer id; private String name; private Integer age; pu…
本文基于 JDK8 分析 Comparable Comparable 接口位于 java.lang 包下,Comparable 接口下有一个 compareTo 方法,称为自然比较方法.一个类只要实现了这个接口,意味着该类支持自然排序 所谓自然排序,就是按默认规则组成的排序,例如 1234 就是自然排序,因为 2 就是比 1 大,这是默认规定的.类比到 Comparable,我们在 compareTo 中定义自己需要的默认比较规则,以后如果用到 Collections.sort 和 Arrays…
  Similarities:Both are custom ways to compare two objects.Both return an int describing the relationship between two objects. Differences: Comparator compare() is from the Comparator interface. A comparator object is capable of comparing two differe…
针对形如:字段1 字段2 字段3 字段n 1 hello 26 7891 world 89 5562 what 55 4562 the 85 452 fuck 55 995 haha 98 455 以上类型的查询数据结果,需要对 字段3 进行求和分组(在SQL查询无法一次性完成的情况下,通常采用Java分组排序),大概思路如下: 1.在Bean中添加相关的分组标记字段,对求和或者其它统计的结果进行插入分组标记,下面demo中为bigIdOrder标记 2.对完成标记的List进行标记的补全 3.…
Comparable接口定义了compareTo方法,用于比较对象. 例如,在JavaAPI中,Integer.BigInteger.String以及Date类定义如下 Cloneable接口 Cloneable接口给出了一个可克隆的对象. 若要出现需要创建一个对象拷贝的情况.为了这个目的,需要使用clone方法 Cloneable定义如下: 直接调用clone()话,对象里面的基本类型数据会直接复制,但引用类型数据,是复制他的引用,这称为浅复制,不是深复制 package test; impo…
Java中在进行数据排序时,Comparable和Comparator不可缺少会遇得到.普通的String.Integer等类型,已经实现了Comparable接口,而有些时候,我们须要对一些其它不存在内在排序关系的类进行排序,那么就须要实现以上两个接口,可是会有所不同. 之前搜索两者的关系.看到这样一篇文章.Comparable与Comparator的差别,里面有些说法有点太深奥,只是我来总结的话.两者最大的差别就在于假设实现Comparable,就意味着类的排序规则固定了,而假设实现Comp…
1,两种接口的展示 下面的程序是两个类各自实现了Comparable接口.Comparator接口 package com.cnblogs.mufasa.Solution; import java.util.Comparator; class Solution1 implements Comparable<Solution1>{ int val; public Solution1(int val){ this.val=val; } @Override public int compareTo(…
1.Product类 public class Product { private int pid; private String name; private double price; public Product() { // TODO Auto-generated constructor stub } public Product(int pid, String name, double price) { this.pid = pid; this.name = name; this.pri…
1.数字排序  奇数在前,偶数在后.奇数降序,偶数升序.输入:"0,1,2,3,4,5,6,7,8,9"        输出:"9,7,5,3,1,0,2,4,6,8" package com.sheepmu.text; import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; import java.util.List; /* * @author s…
/*Comparator是java.util包里的一个接口,使用时应该实现导入相应的包, *再写一个实现了Comparator接口的类,并复写int compare(Object o)方法, *写出你的判断语句(例如:以下代码是按照年龄的递增顺序排序,年龄相同则按照工资的数目递增排序) *把这个类添加到Arrays.sort()或Collections.sort()中(例如:定义一个list集合,用来存放对象,可以这样写:Collections.sort(list,new 实现类():)) */…
注意:排序的字段不为空,否则抛出空指针异常! 第一步:先编写一个比较器类 如下: 第二步:此集合的对象 EO 必须重写 此equals 方法 如图: 第三步:调用使用此比较器 如图:…
一.comparator 接口继承 public class ComparatorTest { /** * @param args */ public static void main(String[] args) { // ----写程序 List<Step> list=new ArrayList<Step>(); for (int i = 10; i < 12; i++) { list.add(new Step(i)); } for (int i = 5; i <…
Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comparable和Comparator接口的区别,两者都有比较的功能,那么究竟有什么区别呢,感兴趣的Java开发者继续看下去吧.Comparable 简介Comparable 是排序接口.若一个类实现了Comparab 本文要来详细分析一下Java中Comparable和Comparator接口的区别,…
Java 中 Comparable 和 Comparator 比较 目录: Comparable Comparator Comparable 和 Comparator比较 第二个例子 之 Comparator 第二个例子 之 Comparable Comparable  Comparable 简介 Comparable 是排序接口. 若一个类实现了Comparable接口,就意味着“该类支持排序”.  即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的…
转自http://www.cnblogs.com/skywang12345/p/3324788.html 本文,先介绍Comparable 和Comparator两个接口,以及它们的差异:接着,通过示例,对它们的使用方法进行说明. Comparable 简介 Comparable 是排序接口. 若一个类实现了Comparable接口,就意味着“该类支持排序”.  即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该Li…