Java的Comparable接口】的更多相关文章

Comparable故名思意是比较,意思就是做比较的,然后进行排序. 1.什么是comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 .实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行自动排序.实现此接口的对象可以用作有序映射表中的键或有序集合中的元素,无需指定比较器. 强烈推荐(虽然不是必需的)使自然排序与 equals 一致.所谓…
转自:http://blog.csdn.net/zccst/article/details/5092920 java.lang.Comparable 接口 作者: zccst java.lang.Comparable 接口定义的 compareTo() 方法用于提供对其实现类的对象进行整体排序所需要的比较逻辑. 实现类基于 compareTo() 方法的排序被称为自然排序.而 compareTo() 方法的排序被称为它的自然排序.具体的排序原则可由实现类根据需要而定.用户在重写 compareT…
原文地址https://segmentfault.com/a/1190000005738975 实体类:java.lang.Comparable(接口) + comareTo(重写方法),业务排序类 java.util.Comparator(接口) + compare(重写方法). 这两个接口我们非常的熟悉,但是 在用的时候会有一些不知道怎么下手的感觉,现在用案例进行总结,消除对这个知识点的理解盲区(个人的理解,如果有错误 请多多指教).一,在实际的需求中,我们需要根据对象的各种属性(标题,时间…
comparable 接口: 1. 问题:java.util.Collections 类中的方法 Collections.sort(List list) 是根据什么确定容器中对象的“大小”顺序的? 2. java 中所有可以“排序”的类都实现了 java.lang.comparable 接口,Comparable 接口中只有一个方法: public int  compareTo(Object obj):在该方法中,  返回   0, 表示 this == obj;  返回 正数,表示 this…
转载自:http://my.oschina.net/jack230230/blog/56339 Java的Comparable接口提供一个对实现了这个接口的对象列表进行排序的办法.原始的排序对于简单的对象来说具有意义,但是当我们面对复杂的面向对象的业务逻辑对象时,事情变得复杂的多.从业务经理的角度来看,一些交易对象的自然顺序可能是按照交易的价值来排序的,但是从系统管理员的角度来看,这个排序的规则可能是交易的速度.所以在大多数情况下,并没有明确的业务领域对象的自然排序规则.     假设我们找到了…
Comparable & Comparator 都是用来实现集合中元素的比较.排序的: Comparable 是在集合内部定义的方法实现的排序: Comparator 是在集合外部实现的排序: 所以,如想实现排序,就需要在集合外定义 Comparator 接口的方法或在集合内实现 Comparable 接口的方法. Comparator位于包java.util下,而Comparable位于包java.lang下 Comparable 是一个对象本身就已经支持自比较所需要实现的接口(如 Strin…
Java的Comparator和Comparable当需要排序的集合或数组不是单纯的数字型时,通常可以使用Comparator或Comparable,以简单的方式实现对象排序或自定义排序. 1.Comparable简介: Java.lang.Comparable是排序接口.若一个类实现了Comparable接口,就意味着该类支持排序.实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序. 此外,实现此接口的对象可以用作有…
//Comparable 接口强行对实现它的每个类的对象进行整体排序. -- 自然排序.类的compareTo称为自然比较方法. public interface Comparable<T> { public int compareTo(T o); } 此接口强行对实现它的每个类的对象进行整体排序.这种排序被称为类的自然排序,类的 compareTo 方法被称为它的自然比较方法. 实现此接口的对象列表(和数组)可以通过 Collections.sort(和 Arrays.sort)进行自动排序…
对象比较器 1.Comparable接口 此接口强行对实现它的每个类的对象进行整体排序,这种排序成为类的自然排序,类的compareTo方法称为类的自然比较方法. 代码示例 import java.util.Arrays; public class Cat implements Comparable<Cat> { private String name; private int age; public Cat() {} public Cat(String name, int age) { th…
1.Comparable接口 说明:可比较(可排序的) 例子:按照MyClass的y属性进行生序排序 class MyClass implements Comparable<MyClass>{ private int x; private int y; public MyClass(int x,int y){ this.x=x; this.y=y; } @Override public int compareTo(MyClass o) { //按照y进行升序排序 return y<o.y…
/** * 对象比较大小compare的用法 字符串排序 * 练习代码, 给定字符串" nba" "cba" "ncaa" "wba" ... 思路: 1.排序,想到数组的排序.数组排序想到选择排序,或者冒泡排序 2.用数组排序的思路做此题.(字符串同理) 3.遍历数组,比较每一个元素与下一个元素的大小关系 4.最后交换两个元素位置 5.输出结果 经过学习总结: 1.String本身是不具备比较大小功能的,但是由于String…
Comparable接口提供比较对象大小功能,实现了此接口的类的对象比较大小将通过接口提供的compareTo方法. 此方法的返回int类型,分三种情况. 返回正数,当前对象大于目标对象 返回负数,当前对象小于目标对象 返回0,当前对象等于目标对象 TreeSet提供了将对象排序功能(默认升序排序),如果存储容器的是自定义类,那此类将要实现Comparable功能以供TreeSet进行对象大小比较时使用,否则将报错. public class TestCompareTo implements C…
对于BigDecimal类在HashSet和TreeSet中 new BigDecimal("1.00") new BigDecimal("1.0") 在HashSet容器中这是两个实例,因为BigDecimal类的equals()方法来比较是不相等的, 但是在TreeSet容器中这是一个实例,因为TreeSet会调用BigDecimal实现的compareTo()方法,实际上BigDecimal的compareTo()方法对上述两个实例来讲是相等的 这里涉及到一个…
参考https://blog.csdn.net/itm_hadf/article/details/7432782 http://www.blogjava.net/jjshcc/archive/2011/04/12/348132.html…
一.定制排序:java.util.Comparator 接口 强行对某个对象 collection 进行整体排序 的比较函数.可以将 Comparator 传递给 sort 方法(如 Collections.sort 或 Arrays.sort),从而允许在排序顺序上实现精确控制.还可以使用 Comparator 来控制某些数据结构(如有序 set或有序映射)的顺序,或者为那些没有自然顺序的对象 collection 提供排序. 当元素的类型没有实现java.lang.Comparable接口而…
一.Set接口 //HashSet综合举例 import java.util.*; public class Test{ public static void main(String[] args){ Set<Name> s = new HashSet<Name>(); s.add(new Name("Li","Ming")); s.add(new Name("Sun","Lei")); s.add(n…
java中的set接口有如下的特点: 不允许出现重复元素: 集合中的元素位置无顺序: 有且只有一个值为null的元素. 因为java中的set接口模仿了数学上的set抽象,所以,对应的数学上set的特性为: 互异性:一个集合中,任何两个元素都认为是不相同的,即每个元素只能出现一次. 无序性:一个集合中,每个元素的地位都是相同的,元素之间是无序的.集合上可以定义序关系,定义了序关系后,元素之间就可以按照序关系排序.但就集合本身的特性而言,元素之间没有必然的序. 空集的性质:空集是一切集合的子集 S…
转载:http://blog.csdn.net/qingchunbusanchang/article/details/39576749 java的集合是一个比较综合的概念,相关的知识有很多的博客里面做了说明,这里面只找一些重要的说明一下. 各方面详细的说明还是要参照网上的一些更详细的资料进行学习. 下面文章中有很多是借鉴别人写的关于集合的总结,供参考. 一.重要的接口以及实现类. 1.Collection接口 Collection接口是最基本的集合接口,用来定义了存储数据的形式. 由Collec…
本章节收集的类/接口API有: Object类,枚举,包装类,接口Comparable,类Arrays,Thread类,System类,Math,BigInteger,Random,日期时间,异常 Object类 非静态方法需对象调用 public String toString(): [把一个对象的信息用一个字符串表示,尽量要能够简单易懂,建议子类重写] public Class<?> getClass(): [获取对象的“运行时”类型] public void finalize():   …
一.Map 接口概述 java.util.Map 接口专门用来存放键值对这种对象关系的对象. 下面比较一下 Collection 与 Map 的区别: Collection 中的集合,元素是孤立存在的(理解是为单身),向集合存储元素采用一个个元素的方式存储. Map 中的集合,元素是成对存在的(理解为夫妻).每个元素由键与值两部分组成,通过键可以找到所对应的值. Collection 中的集合称为 单列集合,Map 中的集合称为双列集合. 注意:Map 中的集合不能包含重复的键,值可以重复:每个…
package com.yhqtv.java; import org.junit.Test; import java.util.Arrays; import java.util.Comparator; /* * 一,说明:java中的对象,正常情况下,只能进行比较:==或!=,不能使用>或者<的 * 但是在开发场景中,我们需要对多个对象进行排序,言外之意,就是需要比较对象的大小. * 如何实现?使用两个接口中的任何一个:Comparable或者Comparator * * 二.Comparab…
comparable.comparator接口 说明 Java中的对象,正常情况下,只能进行比较:== 或 != .不能使用 > 或 < 的,但是在开发场景中,我们需要对多个对象进行排序,言外之意,就需要比较对象的大小. 如何实现?使用两个接口中的任何一个:Comparable 或 Comparator Comparable接口的使用举例: 自然排序 像String.包装类等实现了Comparable接口,重写了compareTo(obj)方法,给出了比较两个对象大小的方式. 像String.…
类对象之间比较"大小"往往是很有用的操作,比如让对象数组排序时,就需要依赖比较操作.对于不同的类有不同的语义.如Student类,比较2个学生对象可以比较他们的score分数来评判. Java不支持预算符重载,我们通过实现Comparable接口达到相同的目的.当类实现了Comparable接口,则认为这个类的对象之间是可比较的. Comparable是java SDK中的一个内置的泛型接口. 源代码:(很简单,只有规定了一个接口方法) public interface Compara…
Java中Comparable和Comparator接口区别分析 来源:码农网 | 时间:2015-03-16 10:25:20 | 阅读数:8902 [导读] 本文要来详细分析一下Java中Comparable和Comparator接口的区别,两者都有比较的功能,那么究竟有什么区别呢,感兴趣的Java开发者继续看下去吧.Comparable 简介Comparable 是排序接口.若一个类实现了Comparab 本文要来详细分析一下Java中Comparable和Comparator接口的区别,…
package java.lang; import java.util.*; public interface Comparable<T> { public int compareTo(T o); } 1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序.此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 .实现此接口的对象列表(和数组)可以通过 Collections.sort (和 Arrays.sort )进行自动排序.实现此接…
在Java集合中,如果要比较引用类型泛型的List,我们使用Comparator和Comparable两个接口. Comparable接口 -- 默认比较规则,可比较的 实现该接口表示:这个类的实例可以比较大小,可以进行自然排序 定义了默认的比较规则 其实现类需要实现comparaTo()方法 comparaTo()方法返回整数表示大,负数表示小,0表示相等 Comparator接口 -- 临时比较规则,比较工具接口 用于定义临时比较规则,而不是默认比较规则 其实现类需要实现compara()方…
Comparator位于包java.util下,比较器,是在集合外部定义排序.Comparable位于包java.lang下,代表当前对象可比较的,是在集合内部实现排序. Comparable代表一个对象内部支持排序(比如String类,Integer类,内部实现了Comparable接口) Collections.sort(list<T>)中,T必须实现Comparable接口. Comparable只需实现compareTo()函数即可 public int compareTo(Objec…
在实际应用中,我们往往有需要比较两个自定义对象大小的地方.而这些自定义对象的比较,就不像简单的整型数据那么简单,它们往往包含有许多的属性,我们一般都是根据这些属性对自定义对象进行比较的.所以Java中要比较对象的大小或者要对对象的集合进行排序,需要通过比较这些对象的某些属性的大小来确定它们之间的大小关系. 一般,Java中通过接口实现两个对象的比较,比较常用就是Comparable接口和Comparator接口.首先类要实现接口,并且使用泛型规定要进行比较的对象所属的类,然后类实现了接口后,还需…
昨天接到一个实习公司的电话面试,来的很突然,没有准备. 由于以前没用过,在被他问及是否用过JAVA的排序工具Comparable与Comparator时,没有回答上来,只能实话实说没有用过. 感觉太丢人了~~回去赶紧看看,现在将学到的东西记录下来,同大家分享~~ 先说Comparable接口,public interface Comparable<T>.当需要根据类中的成员变量对类进行排序时,只需实现该接口,覆写compareTo方法即可非常方便~~ 该接口中只有一个方法--int compa…
Iterator(迭代器) 所有实现了Collection接口的容器都有一个iterator方法, 用来返回一个实现了Iterator接口的对象 Iterator对象称作迭代器, 用来方便的实现对容器内的元素的遍历 迭代器是一种设计模式,它是一个对象,它可以遍历并选择序列中的对象,而开发人员不需要了解该序列的底层结构.迭代器通常被称为"轻量级"对象,因为创建它的代价小. Java中的Iterator功能比较简单,并且只能单向移动: (1) 使用方法iterator()要求容器返回一个I…