簡體   English   中英

如何知道Collection的Iterator是否支持remove()?

[英]How to know whether Iterator of a Collection supports remove()?

所有Java Collection實現了Iterable ,因此它們必須提供一個Iterator ,它指定一個可選的方法remove() Iterator上調用remove() ,它會拋出UnsupportedOperationException

如何知道Java標准庫中的Collection是否會返回支持remove()Iterator而不運行代碼?

當然我希望這些信息位於類的remove()方法的Javadoc中,而是找到一堆指向超類和接口的鏈接。 例如: http//docs.oracle.com/javase/8/docs/api/java/util/TreeSet.html#iterator--我也沒有找到關於鏈接的任何澄清說明。

沒有辦法知道這個事前。 除非正確記錄remove()是否支持(坦率地說,即使它 “正確”記錄的),您唯一可以確定的方法是嘗試。

數據結構的選擇取決於您打算支持的內容,因此當您使用它時,您作為開發人員已經知道底層實現是否支持刪除。

如果實際實現不符合您的假設/理解,則會拋出異常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM