在java中编写公共int compareTo()方法
我有一个任务,需要使用参数(String bookNum、String bookTitle、int qoh、double bookPrice)创建BookInventory对象的arraylist。其中bookNum是一本书的带连字符的ISBN编号。创建这个数组之后,我需要使用Collections类的sort方法。在我的entity BookInventory类中,我需要编写一个compareTo(),它最终将按bookNum(一个字符串)对arraylist进行排序。我该怎么做?这是我第一次体验这个,我不明白 这应该让您开始:在java中编写公共int compareTo()方法,java,Java,我有一个任务,需要使用参数(String bookNum、String bookTitle、int qoh、double bookPrice)创建BookInventory对象的arraylist。其中bookNum是一本书的带连字符的ISBN编号。创建这个数组之后,我需要使用Collections类的sort方法。在我的entity BookInventory类中,我需要编写一个compareTo(),它最终将按bookNum(一个字符串)对arraylist进行排序。我该怎么做?这是我第一次
public class BookInventory implements Comparable<BookInventory> {
// code
public int compareTo(BookInventory other){
return bookTitle.compareTo(other.bookTitle);
}
//code
}
公共类BookInventory实现可比较{
//代码
公共整数比较(簿记存货其他){
返回bookTitle.compareTo(其他.bookTitle);
}
//代码
}
从中可以得到的是实现Comparable,这样您就可以实现自己的自定义compareTo方法,该方法在对ArrayList排序时自动调用
要阅读有关compareTo和订购的更多信息,请查看以下内容:
如果您查看该类,您将看到它实现了两种排序方法。可以使用任何类型的列表
以及比较器
对象来比较列表中的元素。另一个获取任何类型的对象的列表
,该对象实现了可比
。由于compareTo
是由Comparable
定义的(而Comparator
必须实现compare
),这告诉您必须将类声明为implements Comparable
,这意味着它必须具有compareTo
方法。有关方法必须执行的操作,请参阅。您会发现String
方法compareTo(String)
非常有用。compareTo()方法用于比较具有多个属性的两个对象。
它将返回一个整数,以指示比较的对象中哪一个更大。
如果要比较的对象具有自然顺序的属性,则更有意义
返回值:
- 小于0->表示对象在传入对象之前。
- 大于0->对象在传递的对象之后
- 等于0->两个对象处于同一级别
糟糕透了。胖手指打字。最后一个选项应为“等于0”@保罗祝福。感谢大家快速注意,与重写equals不同,此处的输入参数不应为Object类型。