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 接口的类可以使用 Arrays.sort() 方法对其对象数组进行排序。 在上面的示例代码中,我们定义了一个 Simple 类,该类实现了 Comparable 接口。Simple 类具有两个属性:age 和 name。我们实现了 ...
Java 实现 Comparable 接口排序,升序、降序、倒叙 Java 中的 Comparable 接口是一个非常重要的接口,它提供了一种排序的机制,允许开发者自定义对象的排序规则。在 Java 中,实现 Comparable 接口的类可以使用 ...
java通过Comparable接口实现字符串比较大小排序的简单实例
Comparable接口是定义在类内部的,例如,我们可以在Person类中实现Comparable接口,以便比较Person类的对象的大小。这样,Person类的对象就具有了比较大小的功能,可以随时随地的拿来比较大小。例如,我们可以使用...
这篇文章将为大家带来一个使用 Comparable 接口实现自定义排序的示例。 首先,让我们来了解一下 Comparable 接口。Comparable 接口是 Java 中的一个接口,它定义了一个compareTo 方法,该方法用于比较两个对象的...
通过实现Comparable接口,我们能够自定义对象的比较规则,进而实现特定的排序逻辑,这对于数据处理和分析场景非常有用。同时,理解HashMap内部如何利用Comparable接口进行排序也是优化代码性能的关键。
1.什么是Comparable接口 此接口强行对实现它的每个类的对象进行整体排序。此排序被称为该类的自然排序 ,类的 compareTo 方法被称为它的自然比较方法 。实现此接口的对象列表(和数组)可以通过 Collections.sort ...
对于自定义类,如果需要进行比较和排序,也需要实现Comparable接口,并重写`compareTo()`方法。这是确保自定义类对象能参与排序的关键步骤。 实现Comparable接口的类应该遵循一个重要的原则:如果`compareTo()`方法...
在描述中提到的"自定义类实现Comparable自然排序",指的是在创建自己的类时,通过实现`Comparable`接口并定义`compareTo`方法来实现自然排序。例如,如果你有一个`Student`类,你可以根据学生的年龄或者成绩来定义...
HashSet利用哈希表保证元素唯一性,而TreeSet则通过元素实现Comparable接口进行排序。 2. IO流处理输入输出,包括字符流和字节流,涉及文件读写、网络通信等场景。熟悉流的关闭、缓冲和转换等操作是必备技能。 3. ...
Java 类自定义排序 Java 中的自定义排序是指在编写 Java 程序时,...自定义排序是 Java 中的一种非常重要的技术,通过实现 Comparable 接口,我们可以对自定义的对象进行排序,并且可以根据不同的比较规则进行排序。
例如,`String`类就实现了`Comparable`接口,因此可以直接对字符串数组进行排序。当你重写`compareTo`方法时,你需要定义如何比较两个对象,返回值决定了两个对象的相对顺序:负数表示当前对象小于参数对象,零表示...
当我们在`TreeSet`中存储自定义类型的对象时,若想让`TreeSet`自动按照我们的需求排序,就需要让这些对象所属的类实现`Comparable`接口。具体实现方式是在类中重写`compareTo()`方法,根据业务逻辑定义比较规则。...
当你需要对一个集合(如ArrayList或LinkedList)进行排序时,只需确保其中的元素类型实现了Comparable接口,然后调用Collections.sort()方法即可。 ```java List<String> list = new ArrayList(); list.add("apple...
对于自定义类,如`Person`,如果想要支持排序,你需要在`Person`类中实现Comparable接口,并重写`compareTo(Person another)`方法,根据类的属性(如姓名、年龄)来定义比较规则。 而Comparator接口则不同,它不在...
在使用Comparator时,可以定义一个泛型方法,限制传入的类型T必须实现Comparable接口,这样编译器就能确保传递给方法的参数是可比较的。例如,上述的max()方法就是一个泛型方法,它接收两个实现了Comparable接口的...
例如,当我们有一个自定义类的集合,并且需要按照多种方式进行排序时,可以先让类实现Comparable接口,表示其默认的排序规则,然后在需要其他排序规则时,创建Comparator实例并传递给Collections.sort()或者TreeSet...
任何类如果需要进行排序,可以实现Comparable接口。例如,String、Integer等内置类已经实现了Comparable接口,可以方便地进行大小比较。当我们自定义一个类并希望它在集合(如List)中能自动排序时,就需要实现...
#### 二、Comparable接口解析 ##### 1. 概念介绍 `Comparable`接口位于`java.lang`包中,它定义了一个单一的方法`compareTo`。这个接口适用于那些具有自然顺序的对象。当一个类实现了`Comparable`接口时,意味着它...
当一个类实现Comparable接口时,表示该类的实例可以自然排序。例如,Java中的String和Integer类都实现了Comparable接口,它们按照默认规则(字典顺序和数值大小)进行排序。 ```java public interface Comparable...