我需要在教授提供的程序中使用 compareTo()。但該程序包括泛型。該功能存在問題。所以我的問題是我該如何實現它。if(node1.getElement().compareTo(node2.getElement()) < 0)我需要一些解釋java.util.Iterator; 因為我需要iteration()在主類中使用。我是 Java 新手??梢宰杂傻叵蛐率纸忉屗?。Tnx 伙計們這是整體代碼:D https://pastebin.com/mA9igb1t
1 回答

BIG陽
TA貢獻1859條經驗 獲得超6個贊
首先:在您的main
方法中,您不能使用泛型E
. Integer
在您的情況下,您必須使用正確的類型。
比較器問題有兩種解決方案:
如果您確定
E
將始終是原始類型(如 Byte、Short、Integer、Long、Float 或 Double)的包裝器,您可以聲明 SLL,class SLL<E extends Number & Comparable> implements Iterable<E>
這樣您if
就可以工作了。SLL
不必實現Comparable
.否則,你可以使用的BigDecimal在
if
BigDecimal node1Value = new BigDecimal(node1.getElement().toString());
BigDecimal node2Value = new BigDecimal(node2.getElement().toString());
if(node1Value.compareTo(node2Value) < 0)
關于迭代器的問題,因為你必須調用.iterator()
你的SLL
對象,這個類必須工具可迭代。
您可以在The Java Tutorials - The Collection Interface上閱讀有關迭代器的信息。
我還建議看一下LinkedList 的源代碼
添加回答
舉報
0/150
提交
取消