java的Comparator和Comparable】的更多相关文章

java的Comparator和Comparable 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序.      一.Comparator 强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort. 接口方法:   /**    * @return o1小于.等于或大于o2,分别返回负整数.零或正整数.    */  …
转自:http://blog.csdn.net/zhangerqing 当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. 一.Comparator 强行对某个对象collection进行整体排序的比较函数,可以将Comparator传递给Collections.sort或Arrays.sort. 接口方法: [java] view plaincopy /** * @return o1小于.等于或大于o2,分别…
Java的Comparator和Comparable当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. 1.Comparable简介: Java.lang.Comparable是排序接口.若一个类实现了Comparable接口,就意味着该类支持排序.实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序. 此外,实现此接口的对象可以用作有…
在Java集合中,如果要比较引用类型泛型的List,我们使用Comparator和Comparable两个接口. Comparable接口 -- 默认比较规则,可比较的 实现该接口表示:这个类的实例可以比较大小,可以进行自然排序 定义了默认的比较规则 其实现类需要实现comparaTo()方法 comparaTo()方法返回整数表示大,负数表示小,0表示相等 Comparator接口 -- 临时比较规则,比较工具接口 用于定义临时比较规则,而不是默认比较规则 其实现类需要实现compara()方…
今天写的一个程序中需要对一个List进行排序,突然发现自己对这个问题一无所知,于是查阅资料并进行测试,在此做个记录. Collections工具类中有两个方法可以对List进行排序,分别为: public static <T extends Comparable<? super T>> void sort(List<T> list) public static <T> void sort(List<T> list, Comparator<?…
详见:http://blog.yemou.net/article/query/info/tytfjhfascvhzxcyt159 comparator接口与Comparable接口的区别 1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class: 如 public class Person{ String name; int age }. 当我们有这么一个personList,里面包含了pe…
package 对象比较排序; import java.util.Arrays; class A implements Comparable<A>{ private String name; private int age; public A(String name,int age){ this.name=name; this.age=age; } @Override public int compareTo(A o) {//此方法无需手工调用,Arrays会自动调用 if(this.age&…
package com.tn.treeSet; public class Student { private String name; private int age; public Student(){} public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(S…
//Comparable 接口强行对实现它的每个类的对象进行整体排序. -- 自然排序.类的compareTo称为自然比较方法. public interface Comparable<T> { public int compareTo(T o); } 此接口强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法. 实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序…
一.概述Comparable和Comparator都是用来实现集合中元素的比较.排序的.Comparable是在集合内部定义的方法实现的排序,位于java.lang下.Comparator是在集合外部实现的排序,位于java.util下. 首先来看一下Comparable的定义: package java.lang; import java.util.*; public interface Comparable<T> { //若x.compareTo(y) <0,则x<y;若x.c…
import java.util.ArrayList; import java.util.Collections; import java.util.Comparator; //comparator.comparable的用法(按照要求将map集合的键值对进行顺序输出) import java.util.List; public class Test { public static <T> void sop(T t) { System.out.println(t); } public stat…
参考http://how2j.cn/k/collection/collection-comparator-comparable/693.html Comparator 假设Hero有三个属性 name,hp,damage一个集合中放存放10个Hero,通过Collections.sort对这10个进行排序那么到底是hp小的放前面?还是damage小的放前面?Collections.sort也无法确定所以要指定到底按照哪种属性进行排序这里就需要提供一个Comparator给定如何进行两个对象之间的…
1,Comparable 简介 Comparable 是排序接口. 若一个类实现了Comparable接口,就意味着“该类支持排序”.  即然实现Comparable接口的类支持排序,假设现在存在“实现Comparable接口的类的对象的List列表(或数组)”,则该List列表(或数组)可以通过 Collections.sort(或 Arrays.sort)进行排序. 此外,“实现Comparable接口的类的对象”可以用作“有序映射(如TreeMap)”中的键或“有序集合(TreeSet)”…
Java基础之comparator和comparable的区别以及使用 1: 区别:  .Comparable类需要实现此接口,定义在类内,不利于扩展 2 .Comparator更灵活,可以随时自定义比较规则    使用:       2.2. Collections.sort(List<T> list,Comparator<? super T> c); Comparable: class Student implements Comparable<Student>{…
Java Comparator和Comparable 步骤 1 : Comparator 假设Hero有三个属性 name,hp,damage 一个集合中放存放10个Hero,通过Collections.sort对这10个进行排序 那么到底是hp小的放前面?还是damage小的放前面?Collections.sort也无法确定 所以要指定到底按照哪种属性进行排序 这里就需要提供一个Comparator给定如何进行两个对象之间的大小比较 //Hero.java package charactor;…
普通情况下在实现对对象元素的数组或集合进行排序的时候会用到Comparator和Comparable接口,通过在元素所在的类中实现这两个接口中的一个.然后对数组或集合调用Arrays.sort或者Collentions.sort方法就可以实现对数组或集合的排序.就sort方法里面的參数来说.实现了不同的接口则传递的參数也不尽同样.对于实现了Comparator接口的类来说.sort方法须要接受的參数不仅包含数组或集合.还要包含实现了该接口的类对象.而对实现了Comparable接口的类来说,參数…
package test.collections; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.List; public class Test03 { public static void main(String[] args){ List<Song> songs = new…
1.Comparable 2.Comparator  >>>>>> Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法. Comparator位于包java.util下 而Comparable位于包  …
1.知识点了解 Comparator和Comparable都是用用来实现集合中元素的比较.排序的,所以,经常在集合外定义Comparator接口的方法和集合内实现Comparable接口的方法中实现排序 相同点: 二者的比较方法Comparable的compareTo和compare返回的结果有三种负数.零.正数,分别表示的关系为小于.等于.大于 不同点: Comparator位于java.util包下,属于Collection的一员:Comparable位于java.lang包下 Compar…
PresonDemo package cn.stat.p5.person.demo; public class PresonDemo implements Comparable { private String name; private int age; /** * @param args */ public String getName() { return name; } public void setName(String name) { this.name = name; } publ…
/** * 学生类 * @author Administrator * */ public class Student { private String sno ; private String sname ; private Integer score ; public Student(String sno, String sname, Integer score) { super(); this.sno = sno; this.sname = sname; this.score = scor…
Java 排序 Compare  Comparator接口 Comparable接口 区别 在Java中使用集合来存储数据时非常常见的,集合排序功能也是常用功能之一.下面看一下如何进行集合排序,常用的方法有: Comparator和Comparable Comparator接口 使用步骤: 新建比较类, 实现Comparator接口, 重写compare方法, package sort;  import java.util.Comparator;  public class LuckBoyCom…
文章转载自: http://blog.csdn.net/u012250875/article/details/55126531 1.为什么写? comparator 是javase中的接口,位于java.util包下,javase中的所有接口抽象度都很高,有必要重视 网上太多的文章告诉大家comparator是用来排序:确实,可以用来排序,但不仅限于排序 工作中实际需求出现很多需要使用comparator去处理的问题,在此总结一下. 2.接口功能 该接口的功能表示一个比较器,比较器当然具有可比性…
我们都知道,实现Comparator和Comparable这两个接口,可以实现对对象比较大小.那这个两个又有什么区别呢? comparator 1.接口类在java.util包里面,实现接口时需要导入该包. 2.一般新建一个类实现这个接口,用来比较其他对象的大小.实现这个接口时,对象不能把自己和其他对象相比较. 3.实现public int compare(Object o1, Object o2),当实现类使用了泛型时,Object可以换成具体的类型. import java.util.Com…
1.Comparator中compare()与Comparable中compareTo()方法的区别 Treeset集合创建对象后, A:如果是空构造,即TreeSet<Student> ts = new TreeSet<Student>();  ,那么ts.add();,时需要在Student上implements Comparable<Student>接口,在下面重写compareTo()方法,因为此时的add()调用的是compareTo()方法,底层以红黑二叉树…
1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的. 什么是自定义class: 如 public class Person{ String name; int age; } 当我们有这么一个personList,里面包含了person1, person2, persion3....., 我们用Collections.sort( personList ), 是得不到预期的结果的. 这时肯定有人要问, 那为什么可以…
转载自 http://www.cnblogs.com/sunflower627/p/3158042.html 1. Comparator 和 Comparable 相同的地方 他们都是java的一个接口, 并且是用来对自定义的class比较大小的, 什么是自定义class: 如 public class Person{ String name; int age }. 当我们有这么一个personList,里面包含了person1, person2, persion3....., 我们用Colle…
1. 实现比较类 public class Comparator implements java.util.Comparator<TaskInfo>{ @Override public int compare(TaskInfo o1, TaskInfo o2) { //查验位置 if(o1.getPriority()==o2.getPriority() && o1.getPriority()==Constants.PRIORITY_HIGH){ return o1.getChe…
最近项目中有排序的需求,就查看了一下Java文档,发现有两个接口都可以进行排序,Comparable 和 Comparator 两接口到底有啥区别?何时用?怎么用?使用场景我都在底下一一研究分享出来: 一.Comparable 比较器 (1)Comparable 是接口,可以认为是一个内比较器,实现了Comparable 接口的类有一个特点,就是这些类可以和自己进行比较,比较逻辑依赖于 comparaTo() 方法.如果借用Collections.sort() 方法来进行排序,那么这个类必须实现…
1.数组操作类: Arrays        2.两种比较器的使用: Comparable Comparator        3.实现二叉树算法            content (内容)        1.数组操作类: Arrays            Arrays 类一早就开始使用了.最早使用的是它的排序操作,但是现在打开 Arrays 观察一下有那些方法                二分查找法: public static int binarySearch(数据类型[] a,数据…