转自:http://blog.csdn.net/zccst/article/details/5092920java.lang.Comparable 接口作者: zccst java.lang.Comparable 接口定义的 compareTo() 方法用于提供对其实现类的对象进行整体排序所需要的比较逻辑。实现类基于 compareTo() 方法的排序被称为自然排序。而 compareTo() 方法的排序被称为它的自然排序。具体的排序原则可由实现类根据需要而定。用户在重写 compareTo() 方法以定制比较逻辑时,需要确保其余等价性判断方法 ...
我们知道,在Java的集合类中是有一些可复用的算法的,比如Collections.sort()从小到大排序,Collections.min(),最小值Collections.max()最大值,这些对于list操作来说都是非常常见的,也经常需要用到 List<String> strings = new ArrayList<String>();strings.add("ab");strings.add("cc");strings.add("bc");Collections.sort(strings);String max =Collections.max(strings);String min =Collections.min(strings);System.out.pr...
Comparable 是在集合内部定义的方法实现的排序;Comparator 是在集合外部实现的排序 Comparator位于包java.util下,而Comparable位于包java.lang下 Comparable 是一个对象本身就已经支持自比较所需要实现的接口,如 String、Integer 自己就可以完成比较大小操作,已经实现了Comparable接口 Comparator 是一个专用的比较器,当这个对象不支持自比较或者自比较函数不能满足你的要求时,你可以写一个比较器来完成两个对象之间大小的比...
(一)list和数组①List默认排序代码:public static void main(String[] args) {List<String> list = new ArrayList<>();list.add("阿a里 ");list.add("不b安定 ");list.add("嘻x嘻 ");list.add("一y一 ");list.add("传c递 ");list.add("东d西 ");list.add("耳e朵 ");list.add("分f数 ");for (int i=0;i<list.size();i++){System.out.print(list.get(i));}//降序【以现有list的顺序----从后往前输出 】System.out.println(" 降序"...
我正在编写一个等距游戏,根据Y坐标渲染对象,使用类似的类,按Y值排序,然后进行更改.我收到错误“比较方法违反了它的总合同!”并阅读了有关如何返回负数,0或正数的信息,所以我已经实现了这个:public boolean equals(Entity e) {if ((e.y-y)==0)return (e.id == id);return (e.y == y);
}public int compareTo(Entity e) {if ((e.y-y)==0)return (e.id - id);return (int) (e.y - y); // Render order by y coordinate
}但我仍然得到...
我们都知道,要对自建对象按照一定规则进行排序的话,要求自建对象实现Comparable接口,并重写compareTo() 方法,但compareTo() 方法的释义却不是那么容易搞清楚,下面举例进行阐述:
声明一个Student类(成员变量id,name)实现Comparable接口,然后重写compareTo()方法,
public class Student implements Comparable<Student>{ private int id; private String name;@Overridepublic int compareTo(Student o) {if(this.id...
一、Comparable简介Comparable是排序接口。
若一个类实现了Comparable接口,就意味着该类支持排序。实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。
此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。该接口定义如下:
package java.lang;
import java.util.*;
public interface Comparable<T>
{
public int compareTo(T o);
}
T表...
目录
ComparableComparator注意
Comparable
Comparable是排序接口如果一个类实现了Comparable接口,就说明该类支持排序。此外,实现Comparable接口的类的对象可以用作有序映射(如TreeMap)中的键或有序集合中的元素,而不需要指定比较器。Comparable接口所定义的顺序,叫做natural ordering。当向支持排序的集合中添加该类元素后,在对该集合排序时,就会调用comparaTo方法来进行natural ordering进行排序。接口中通过x.comparaTo...
1、前言
在Java中经常遇到数组和对象的排序问题,那么就涉及到对象之间的比较问题。
Java中的对象,正常情况下,只能进行比较:== !=。不能用 > < 号比较对象,使用以下方式比较对象的大小。
在Java中实现对象排序的两种方式:
①自然排序:java.lang.Comparable
②定制排序:java.util.Comparator
2、方式一:自然排序,自定义类实现Comparable接口
一个类实现Comparable接口,Comparable会强行...
Java中Comparable和Comparator区别小结Comparable是排序接口,若一个类实现了该接口,代表该类支持排序,而Comparator是比较器接口,通过实现某个类的比较器来对该类进行排序。
Comparable相当于"内部比较器“,Comparator相当于"外部比较器"。
一:Comparable排序接口,相当于实现了该类接口就可赋予类一个排序属性。 可以看出,该接口的类型为泛型,也就是说T的位置既可以有自定义类型,又可以有原有的类型。里面只有一个函数,因此继承该接口的类都必须重写这个函数compareTo()
示例:学生类,先根据年龄排序,再根据name排序。
package day_10;public class student implements Comparable<student> {int age;String name;student(int age,String name){this.age=age;t...
Java比较器
1.自然排序:Comparable1.1 Comparable接口1.2 Comparable 的典型实现1.3 自定义类实现Comparable接口
2.定制排序:Comparator2.1 Comparator 接口2.2 重写compare(T o1,T o2)使String 降序排列
3.Comparable、Comparator区别4. 关于Comparable接口的一点说明
1.自然排序:Comparable
1.1 Comparable接口
public interface Comparable<T>
{public int compareTo(T o);
}若一个类实现了Comparable接口(即实现 compareT...
一、概述
??Comparable和Comparator都是两个接口,接口都可以用来实现集合中元素的比较、排序,Comparator位于包java.util下,而Comparable位于包java.lang下,Comparable接口将比较代码嵌入自身类中,而Comparator既可以嵌入到自身类中,也可以在一个独立的类中实现比较。 Integer、String等这些基本类型的JAVA封装类都已经实现了Comparable接口,这些类对象本身就支持自比较,直接调用Collections.sort()就可以对集合中元素的排序...
Comparator接口比较器 1 Collections工具及其中的sort()
2 public static <T> void sort(List<T> list)
3 public static <T> void sort(List<T> list,Comparator<? T> c) Comparator接口在java.util包下面,排序是Comparator需要实现的功能之一,该接口代表的是一个比较器,比较器具有可比性,可以做排序的,本质其实是比较两个对象谁排在前边谁排在后面。那么比较的方法是:1 public int compare(Object o1,Object o2),比较两...
1.Comparable接口
Comparable接口:
(1)java.lang包下的接口;
(2)Comparable接口只有一个方法:int compareTo(T o)方法;
如: obj1.compareTo(obj2):obj1小于、等于、大于obj2时,分别返回负整数、零、正整数。
(3)一个集合中的元素是某个自定类型,如果要多其排序,那么这个自定义类需要实现Comparable接口,并且按照业务需求,实现Comparable接口的compareT...