`

实现Comparable接口,进行排序

    博客分类:
  • Java
 
阅读更多
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
public class Book implements Comparable{
/*编写一个类Book,具有name,price,press,author属性.然后创建5个对象放入ArrayList中,并实现按照price大小排序(使用Comparable接口排序),
   然后遍历ArrayList输出每个Book对象。*/
private String name;
private float price;
private String press;
private String author;

//构造方法
public Book(String name,float price,String press,String author){
   this.name = name;
   this.price = price;
   this.press = press;
   this.author = author;
   System.out.println(name.toString());
}
@SuppressWarnings("unchecked")
public static void main(String[] args){
   List<Book> list = new ArrayList<Book>();
   Book b1=new Book("java1",25f,"不错的书","LY1");
   Book b2=new Book("java2",26f,"不错的书","LY2");
   Book b3=new Book("java3",50f,"不错的书","LY3");
   Book b4=new Book("java4",20f,"不错的书","LY4");
   Book b5=new Book("java5",15f,"不错的书","LY5");
   list.add(b1);
   list.add(b2);
   list.add(b3);
   list.add(b4);
   list.add(b5);
   Collections.sort(list);
   for(int i=0;i<list.size();i++){
    Book book = (Book)list.get(i);
    System.out.println(book);
   }
}
   //重写
public int compareTo(Object obj) {
      Book p = (Book)obj;
      if(p.price>this.price){
     return 1;
      }
      else if(p.price<this.price){
     return -1;
      }
      else{
          return 0;
      }
}
//重写toString方法
public String toString(){//这上是重写了本类的toString方法,对系统自带的其它字段的toString方法无效
     return "书名:"+this.name+", 价格:"+this.price+", 说明:"+this.press+", 作者: "+this.author;
     }
}
//.sort(List)方法,当然还可能使用java.util.Arrays.sort(数组),那样就必须把//list转化为数组,由于本例使用Collections.sort(List)已经足够,另一方法,大家可//以尝试自已使用.
分享到:
评论

相关推荐

    java 实现Comparable接口排序,升序、降序、倒叙

    主要介绍了java 实现Comparable接口排序,升序、降序、倒叙,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

    Comparable接口实现字符串比较大小排序的简单实例

    java通过Comparable接口实现字符串比较大小排序的简单实例

    java中实现Comparable接口实现自定义排序的示例

    下面小编就为大家带来一篇java中实现Comparable接口实现自定义排序的示例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    java,Comparable接口实例

    1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort ...

    Comparable接口和Comparator接口的比较

    实现了Comparable接口的类的对象的列表或数组可以通过Collections.sort或Arrays.sort进行自动排序。 此外,实现此接口的对象可以用作有序映射中的键或有序集合中的集合,无需指定比较器。 此 接口只有一个方法...

    java实现别踩白块儿源码-SortedList:用Java编写的SortedList的实现。可以与实现Comparable接口的对象一起使用

    当且仅当要使用的对象实现Comparable接口时,我们也可以创建不带Comparator对象的SortedList。 用法 我们将像创建Java中的任何ArrayList一样创建SortedList: SortedList sortedlist = new SortedList(comparator); ...

    #在千锋“逆战”学习第19天#接口、内部类 、排序(java.lang.Comparable)完成Student排序

    传统的方法我们需要先把验证质数的方法写好,然后再去将输入的偶数进行拆分,调用函数进行验证,这需要你先将实现的方法去写好。 而当你有了接口,里面定义了一个抽象的的方法,工具可以先调用我这个抽象的方法,我...

    day016-list和set笔记以及代码.zip

    如果是自然排序,需要元素实现Comparable接口,重写compareTo方法 如果是定制排序,需要创建TreeSet对象的时候,传入一个Comparetor接口实现类对象,重写compare方法 一般是默认排序用自然排序(Comparable接口)...

    Hadoop大作业排序.zip

    在 java 中,要实现类的大小比较可以实现 Comparable 接口并通 过重写 compareTo 方法来实现。 在 Mapreduce 中,如果需要自定义类的排序规则,需要让类实现 Writable 的子接口 WritableComparable,重写里面的 ...

    java Lucene 中自定义排序的实现

    在Java中只要实现Comparable接口就可以了.但是在Lucene中要实现SortComparatorSource接口和ScoreDocComparator接口.在了解具体实现方法之前先来看看这两个接口的定义吧. SortComparatorSource接口的功能是返回一个...

    ArraySort排序

    ArraySort java数组排序的两种方法:实现Comparator接口,重写compare方法 2实现Comparable接口

    ListView快速索引A-Z

    2,定义类实现Comparable接口,方便排序 3,自定义控件QuickIndexBar继承view(重点) 4,使用接口回调,暴露给外部使用 实现步骤: 1,设置布局 2,使用pinyin4j-2.5.0.jar库,定义把汉字转化为拼音的方法, 3,...

    java集合类演示源码

    实现Comparable接口或Comparator接口,用户可以根据需要对集合中的元素进行排序。为了方便用户使用,Java平台还提供了Collections和Arrays工具类。collection.rar分别对上述内容进行详细讲解演示。

    实现元素比较1

    1. ==、equals、compareTo的关系 3. Comparable接口自然排序 4. comparator定制排序 5. 重写equals方法的标准

    Android ComparableDemo

    Comparable是在集合内部定义的方法实现的排序,而Comparator是在集合外部实现的排序,如果想实现排序,就需要在集合外定义Comparator接口的方法或在集合内实现Comparable接口的方法。 这里是一个简单的...

    ComparaTest.rar

    用Java的Comparable接口与Comparator接口分别实现类的比较排序~~

    Android ComparatorDemo

    Comparable是在集合内部定义的方法实现的排序,而Comparator是在集合外部实现的排序,如果想实现排序,就需要在集合外定义Comparator接口的方法或在集合内实现Comparable接口的方法。 这里是一个简单的...

    11集合.rarjava 集合类

    这种是最简单的一种排序方法,只需要实现他的Comparable 接口及实现public int compareTo(Object arg0)方法即可。 2.Collection.srot(List arg0,Comparator arg1); 这种加入了比较器,具有更大的灵活性,便于管理,...

    HomeTaskWeek3

    它的任务是订购对象的数组,这些对象的类实现Comparable接口。 该方法必须返回该数组的副本,而原始数组必须保持完整。 给出一些对不同对象进行排序的示例。 测试String,StringBuffer和StringBuilder串联方法的...

    Java集合框架总结:TreeSet类的排序问题

    java提供了一个Comparable接口,该接口里定义了一个compareTo(Objectobj)方法,该方法返回一个整数值,实现该接口的类必须实现该方法,实现了该接口的类的对象就可以比较大小。当一个对象调用该方法与另一个对象进行...

Global site tag (gtag.js) - Google Analytics