亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何將 compareTo 用于泛型。(<E>, <整數>...)

如何將 compareTo 用于泛型。(<E>, <整數>...)

慕妹3146593 2021-12-10 16:46:14
我需要在教授提供的程序中使用 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方法中,您不能使用泛型EInteger在您的情況下,您必須使用正確的類型。

比較器問題有兩種解決方案:

  1. 如果您確定E將始終是原始類型(如 Byte、Short、Integer、Long、Float 或 Double)的包裝器,您可以聲明 SLL,
    class SLL<E extends Number & Comparable> implements Iterable<E>
    這樣您if就可以工作了。
    SLL不必實現Comparable.

  2. 否則,你可以使用的BigDecimalif
    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 的源代碼


查看完整回答
反對 回復 2021-12-10
  • 1 回答
  • 0 關注
  • 221 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號