java集合中為什麼next()返回的是object型別呢?演算法金融2019-02-27 13:12:21

1。首先回答你的問題,next的方法定義是E next(),返回值是泛型E(Element,元素,集合中存放的就是元素)。

因為集合是可以放入任何型別的元素,如果沒有泛型,就需要使用所有類的基類Object,next的返回值也是Object,這樣每次都需要強轉為你想要的型別。

有了泛型,傳入的時候可以指定型別,next返回的時候就不需要強轉了。

2。next是介面Iterator的方法,這個其實就是迭代器設計模式了。

目的就是讓遍歷集合時,可以不管具體實現,都使用統一的介面進行遍歷。集合都實現了iterator方法並返回一個Iterator型別的迭代器,迭代器實現了next,hasNext,remove,checkForComodification方法來滿足遍歷的需求。

這樣無論底層是陣列,連結串列,樹,你都不需要關心,只調用相應介面就好了。

3。這裡注意下,使用迭代器遍歷的時候,如果使用集合的增加刪除方法元素,會丟擲ConcurrentModificationException異常的。

希望對你有幫助,可以關注我,後續分享更多的Java知識

java集合中為什麼next()返回的是object型別呢?