On May 19, 2015, at 6:13 PM, Daniel Fuchs <daniel.fu...@oracle.com> wrote:
> On 19/05/15 12:07, Paul Sandoz wrote: >>> Should anything be said also about default remove() method inherited from >>> Iterator interface? Are custom asIterator() implementations allowed to >>> return an Iterator that implements remove() in a way that actually removes >>> elements? >>> > >> Since this method transfers control it seems a little mean to place such a >> restriction on the returned Iterator. Although, there is no clear means of >> stating to the caller whether such an iterator supports removal or not, but >> that seems to be generally the case for any Iterator returning method. > > Ah... Interesting use case. I hadn't thought of that. > > What should ConcurrentHashMap.keys().asIterator().remove() do? > I would not have high expectations that it will not throw unless there was some explicit documentation. This is legacy stuff. One should really be using CHM.keysSet(). Paul.