How to have List Iterator start at a given index?

前端 未结 3 1430
予麋鹿
予麋鹿 2021-01-14 12:45

I have a linked list and I need to make method that returns an iterator at a given point in the list. I currently have an iterator that starts at the head:

p         


        
3条回答
  •  灰色年华
    2021-01-14 13:24

    Without seeing your implementation, the trivial way to do this is:

    public Iterator iterator(int x) {
        if (x < 0 || this.size() < x) {
            throw new IndexOutOfBoundsException();
        }
    
        Iterator it = new ListIterator();
    
        for (; x > 0; --x) {
            it.next(); // ignore the first x values
        }
        return it;
    }
    

    Otherwise, you could traverse the list to the xth node, but there's no reason you can't do it this way.

提交回复
热议问题