gpt4 book ai didi

java:sortedList类比较错误

转载 作者:太空宇宙 更新时间:2023-11-04 12:04:13 25 4
gpt4 key购买 nike

我有这两个类,其中之一是 sortedLinkedList 类,它具有带有泛型类型的 Comparable 。当我在主要实现它们时:

SortedListInterface<Apartment> aptList=new SortedLinkedList<Apartment>();

它将显示此错误:

Test.java:12: error: type argument Apartment is not within bounds of type-variable T SortedListInterface aptList=new SortedLinkedList(); ^ where T is a type-variable: T extends Comparable declared in interface SortedListInterface

公寓类别:

/**A class that holds Apartment informations*/
public class Apartment{

private String id;
private int yearsLeft;

//class methods

}//end Apartment class

SortedLinkedList 类:

/**
* A class that implements the ADT sorted list by using a chain of nodes.
* Duplicate entries are allowed.
*
* @author Frank M. Carrano
* @version 2.0
*/
public class SortedLinkedList<T extends Comparable<? super T>>
implements SortedListInterface<T>
{
//class methods
} // end SortedLinkedList

我的想法是,我想根据年份对所有公寓进行排序 (intyearsLeft),但我是 Comparable 类的新手,所以我可能不知道如何使用它。

我的问题是:如何修复该错误?如果可能的话请提供解释。

最佳答案

为了能够将ApartmentSortedLinkedList一起使用,它需要实现Comparable接口(interface),例如:

  class Apartment implements Comparable<Apartment> {
@Override
public int compareTo(Apartment o) {
return 0;
}

// ... the rest of your code
}

您想如何订购公寓?您需要相应地实现 compareTo 方法。如果您想按 yearsLeft 订购公寓,您可以将其写为:

@Override
public int compareTo(Apartment o) {
return Integer.compare(yearsLeft, o.yearsLeft);
}

要按 yearsLeft 以相反顺序排序,您可以将其写为:

@Override
public int compareTo(Apartment o) {
return -Integer.compare(yearsLeft, o.yearsLeft);
}

您可以在JavaDoc中阅读有关Comparable接口(interface)的更多信息。 .

关于java:sortedList类比较错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40574993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com