1 回答

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