I have the latter in mind (sublist based on positions of the cursors
when the sublist is created). Getting the nextIndex from the cursor
would work, but I want to avoid the list traversals that occur in the
existing sublist constructor (in the calls to _list.getListableAt).
These traversals are superfluous since the cursor already knows the
right place in the list.

I haven't written the code yet-- I wanted to see if it made sense to do
so first. But roughly, ignoring edge conditions and parameter
validation, it would be something ike this:

CursorableSubList(CursorableLinkedList list, Cursor start, Cursor end) {

    _list = List;
    _head.setNext (start._cur);
    _head.setPrev(end._cur);
    _pre = start._cur;
    _post = end._cur;
    _modCount = _list._modCount;
    // don't know how to set _size without a list traversal
}




"Waldhoff, Rodney" wrote:

>
>
> I'm not sure I understand.  Do you intend the sublist to be dynamic
> (i.e., the sublist shrinks or grows as the start/end cursors are
> moved), or simply that you obtain a sublist containing the elements
> between the two cursors at the time the sublist is created?
>
> If it's the former, that sounds interesting but complicated
> (especially if you consider moving the cursors around so that head >
> tail, etc.).  If it's the later, wouldn't it be enough to expose the
> _nextIndex attribute of Cursor (actually inherited from ListIter) and
> use the existing CursorableSubList factory methods?  E.g.,
> list.sublist(cursor1.getIndex(),cursor2.getIndex()) or something like
> that.  (Of course, we could make the API a little smarter using
> list.sublist(cursor1,cursor2) or something like that.)
>
> Have I missed your point entirely?  Do you have a patch that
> demonstrates?
>
>  - Rod

Reply via email to