`

实现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)已经足够,另一方法,大家可//以尝试自已使用.
分享到:
评论

相关推荐

    Comparable接口和Comparator使用示例

    实现 Comparable 接口的类可以使用 Arrays.sort() 方法对其对象数组进行排序。 在上面的示例代码中,我们定义了一个 Simple 类,该类实现了 Comparable 接口。Simple 类具有两个属性:age 和 name。我们实现了 ...

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

    Java 实现 Comparable 接口排序,升序、降序、倒叙 Java 中的 Comparable 接口是一个非常重要的接口,它提供了一种排序的机制,允许开发者自定义对象的排序规则。在 Java 中,实现 Comparable 接口的类可以使用 ...

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

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

    comparator接口与Comparable接口的区别

    Comparable接口是定义在类内部的,例如,我们可以在Person类中实现Comparable接口,以便比较Person类的对象的大小。这样,Person类的对象就具有了比较大小的功能,可以随时随地的拿来比较大小。例如,我们可以使用...

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

    这篇文章将为大家带来一个使用 Comparable 接口实现自定义排序的示例。 首先,让我们来了解一下 Comparable 接口。Comparable 接口是 Java 中的一个接口,它定义了一个compareTo 方法,该方法用于比较两个对象的...

    Java8HashMap键与Comparable接口编程开

    通过实现Comparable接口,我们能够自定义对象的比较规则,进而实现特定的排序逻辑,这对于数据处理和分析场景非常有用。同时,理解HashMap内部如何利用Comparable接口进行排序也是优化代码性能的关键。

    java,Comparable接口实例

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

    推选Comparable自比较接口PPT资料.pptx

    对于自定义类,如果需要进行比较和排序,也需要实现Comparable接口,并重写`compareTo()`方法。这是确保自定义类对象能参与排序的关键步骤。 实现Comparable接口的类应该遵循一个重要的原则:如果`compareTo()`方法...

    492.490.JAVA基础教程_常用类-自定义类实现Comparable自然排序(492).rar

    在描述中提到的"自定义类实现Comparable自然排序",指的是在创建自己的类时,通过实现`Comparable`接口并定义`compareTo`方法来实现自然排序。例如,如果你有一个`Student`类,你可以根据学生的年龄或者成绩来定义...

    安卓学习内部总结

    HashSet利用哈希表保证元素唯一性,而TreeSet则通过元素实现Comparable接口进行排序。 2. IO流处理输入输出,包括字符流和字节流,涉及文件读写、网络通信等场景。熟悉流的关闭、缓冲和转换等操作是必备技能。 3. ...

    Java 类自定义排序

    Java 类自定义排序 Java 中的自定义排序是指在编写 Java 程序时,...自定义排序是 Java 中的一种非常重要的技术,通过实现 Comparable 接口,我们可以对自定义的对象进行排序,并且可以根据不同的比较规则进行排序。

    java排序Comparator和Comparable

    例如,`String`类就实现了`Comparable`接口,因此可以直接对字符串数组进行排序。当你重写`compareTo`方法时,你需要定义如何比较两个对象,返回值决定了两个对象的相对顺序:负数表示当前对象小于参数对象,零表示...

    【IT十八掌徐培成】Java基础第12天-02.TreeSet实现与Comparable接口.zip

    当我们在`TreeSet`中存储自定义类型的对象时,若想让`TreeSet`自动按照我们的需求排序,就需要让这些对象所属的类实现`Comparable`接口。具体实现方式是在类中重写`compareTo()`方法,根据业务逻辑定义比较规则。...

    java中Comparable和Comparator的区别

    当你需要对一个集合(如ArrayList或LinkedList)进行排序时,只需确保其中的元素类型实现了Comparable接口,然后调用Collections.sort()方法即可。 ```java List&lt;String&gt; list = new ArrayList(); list.add("apple...

    浅析Java中comparator接口与Comparable接口的区别

    对于自定义类,如`Person`,如果想要支持排序,你需要在`Person`类中实现Comparable接口,并重写`compareTo(Person another)`方法,根据类的属性(如姓名、年龄)来定义比较规则。 而Comparator接口则不同,它不在...

    对比Java中的Comparable排序接口和Comparator比较器接口

    在使用Comparator时,可以定义一个泛型方法,限制传入的类型T必须实现Comparable接口,这样编译器就能确保传递给方法的参数是可比较的。例如,上述的max()方法就是一个泛型方法,它接收两个实现了Comparable接口的...

    Java中Comparable和Comparator的区别

    例如,当我们有一个自定义类的集合,并且需要按照多种方式进行排序时,可以先让类实现Comparable接口,表示其默认的排序规则,然后在需要其他排序规则时,创建Comparator实例并传递给Collections.sort()或者TreeSet...

    Comparable与Comparator的区别

    任何类如果需要进行排序,可以实现Comparable接口。例如,String、Integer等内置类已经实现了Comparable接口,可以方便地进行大小比较。当我们自定义一个类并希望它在集合(如List)中能自动排序时,就需要实现...

    Comparable&Comparator区别

    #### 二、Comparable接口解析 ##### 1. 概念介绍 `Comparable`接口位于`java.lang`包中,它定义了一个单一的方法`compareTo`。这个接口适用于那些具有自然顺序的对象。当一个类实现了`Comparable`接口时,意味着它...

    Comparable接口和Comparator接口的比较

    当一个类实现Comparable接口时,表示该类的实例可以自然排序。例如,Java中的String和Integer类都实现了Comparable接口,它们按照默认规则(字典顺序和数值大小)进行排序。 ```java public interface Comparable...

Global site tag (gtag.js) - Google Analytics