[英]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.