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

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

如何將從堆棧彈出的 ArrayList 的類型從對象更改為鏈表?

如何將從堆棧彈出的 ArrayList 的類型從對象更改為鏈表?

長風秋雁 2022-12-28 16:28:39
我正在創建 ArrayLists 并使用 push() 將它們存儲在 Stack 中。然而,當我彈出時,它給了我一個錯誤Object cannot be converted to List<Integer>。這是我的代碼: List<Integer> myl=new ArrayList<Integer>();  myl=myStack.pop();
查看完整描述

1 回答

?
aluckdog

TA貢獻1847條經驗 獲得超7個贊

兩件事情:

List<Integer> myl = new ArrayList<Integer>();

可以簡化為:

List<Integer> items = new ArrayList<>();

菱形運算符允許避免重復類型信息。我也將其更改為使用有意義的名稱。不要使用沒有意義的縮寫。使用你的讀者容易理解的東西。

然后,您只需要一個演員表:

items = (List<Integer>) myStack.pop();

當然,這需要您確實在堆棧頂部有一個列表!

理想情況下,您的堆棧本身可以支持泛型,這樣您就可以這樣說:

MyStack<List<Integer>> myStack = new MyStack<>();

這樣你以后就可以簡單地去

items = myStack.pop();

沒有演員!

你看,當你的方法簽名說 時this method returns Object,那么編譯器應該如何知道在這種情況下,因為你之前添加了一個列表,該值具有更具體的類型?!


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

添加回答

舉報

0/150
提交
取消
微信客服

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

幫助反饋 APP下載

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

公眾號

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