有时候需要对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 Comparable 是排序接口,若一个类实现了 Comparable 接口,就意味着该类支持排序.实现了Comparable 接口的类的对象的列表或者数组可以通过 Collections.sort 或 Arrays.sort 进行自动排序 public interface Comparable<T> { public int compareTo(T o); } compareTo ,比较此对象与指定对象的顺序,如果该对象小于.等于.大于指定对象,返回负整数.零.正…
一.    Comparable<T>: Comparable是类内部的比较器,用于创建类的时候实现此接口,同时实现比较方法:对于不能修改源码的类则无法应用此方式进行比较排序等. 源码为: public interface Comparable<T> { public int compareTo(T o); } 可以使用如Arrays.sort(T[] a)或Collections.sort(List<T> list)来使用实现了Comparable<T>的…
Comparable故名思意是比较,意思就是做比较的,然后进行排序. 1.什么是comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 .实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行自动排序.实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器. 强烈推荐(虽然不是必需的)使自然排序与 equals 一致.所谓…
原文见: 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....., 我们用Coll…
Comparable & Comparator 都是用来实现集合中元素的比较.排序的,只是 Comparable 是在集合内部定义的方法实现的排序,Comparator 是在集合外部实现的排序,所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法.Comparator位于包java.util下,而Comparable位于包   java.lang下Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 Stri…
我们经常用容器来存放元素,通常而言我们是不关系容器中的元素是否有序,但有些场景可能要求容器中的元素是有序的,这个时候用ArrayList  LinkedList  Hashtable HashMap HashSet 这些容器本身存放的时候就没有办法做到了,这个时候我们有两种思路:第一种思路:对刚刚我们提到的容器类的元素从新排序后存放,就是后面我们要介绍的利用Collections.sort 方法进行排序,第二种思路:是容器在添加元素的时候就进行大小的比较从而来保证元素的排序.下面我开始来详细介绍…
原创文章,转载请标注出处:<Java基础系列-Comparable和Comparator> 一.概述         Java中的排序是由Comparable和Comparator这两个接口来提供的.         Comparable表示可被排序的,实现该接口的类的对象自动拥有排序功能.         Comparator则表示一个比较器,实现了该接口的的类的对象是一个针对目标类的对象定义的比较器,一般情况,这个比较器将作为一个参数进行传递. 二.Comparable         C…