TreeSet guarantees no duplicate data, also guarantees long(n) time complexity for add(), remove(), contains().import java.util.Comparator;
import java.util.TreeSet;publicclass MySetWithCompr {publicstaticvoid main(String b[]){TreeSet<MyComp> ts = new TreeSet<MyComp>(new MyCompC());ts.add(new MyComp("RED", 1));System.out.println("added");ts.add(new MyComp("ORANGE", 1));System.out.println("added");t...
Java中Comparable和Comparator区别小结Comparable是排序接口,若一个类实现了该接口,代表该类支持排序,而Comparator是比较器接口,通过实现某个类的比较器来对该类进行排序。
Comparable相当于"内部比较器“,Comparator相当于"外部比较器"。原文:https://www.cnblogs.com/hunter-w/p/14403525.html
1. Comparator 和 Comparable 相同的地方
他们都是java的一个接口, 并且是用来对自定义的class比较大小的,
什么是自定义class: 如 public class Person{ String name; int age }.
当我们有这么一个personList,里面包含了person1, person2, persion3....., 我们用Collections.sort( personList ),是得不到预期的结果的. 这时肯定有人要问, 那为什么可以排序一个字符串list呢:
如 StringList{"hello1" , "hello3" , "hello2"}, Colle...
一.Comparator接口*Comparator接口的使用(1)使用Comparable接口定义排序顺序有局限性:实现此接口的类只能按compareTo()定义的这一种方式排序。(2)如果同一类对象要有多种排序方式,应该为该类定义不同的比较器(实现Comparator接口的类)TreeSet有一个构造方法允许给定比较器,它就会根据给定的比较器对元素进行排序.(3)Comparator接口中的比较方法示例:public int compare(Object o1, Object o2); 该方法如果 返回 0,表...
1.Comparable简介此接口对实现它的每个类的对象强加一个总排序。这种排序被称为类的自然排序,类的compareTo方法被称为其自然比较方法。可以通过Collections.sort(和Arrays.sort)自动对实现此接口的对象的列表(和数组)进行排序。实现此接口的对象可用作有序映射中的键或有序集中的元素,而无需指定比较器。注:若一个类实现了该接口,说明该类本身是支持排序的。This interface imposes a total ordering on the objects of ea...
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(" 降序"...
一、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会强行...
public class HomeWork01 {public static void main(String[] args) {Book[] books = new Book[4];books[0] = new Book("红楼梦", 100d);books[1] = new Book("金瓶梅", 200d);books[2] = new Book("青年文摘", 5d);books[3] = new Book("javaAndSpring", 300d);// ArraySortByPrice(books, new Comparator() {
// @Override
// public int compare(Object o1, Object o2) {
// Doubl...
基础排序,从大到小(根据预先复制的index进行排序):/*** 基本排序·Card的id由大到小* @param list* @return*/public static List<Card> DescCard(List<Card> list){Comparator<Card> cc=new Comparator<Card>() {@Overridepublic int compare(Card o1, Card o2) {return o1.getIndex()-o2.getIndex();}};Collections.sort(list,cc);//正序Collections.reverse(list);//倒序return list;}
效果图:这手牌,地主拿底牌赢定了。
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...