On Thursday 10 April 2008 01:15, Daniel Cheng wrote:
> On Thu, Apr 10, 2008 at 6:26 AM, Matthew Toseland
> <[EMAIL PROTECTED]> wrote:
> > On Wednesday 09 April 2008 17:01, you wrote:
> > > Author: j16sdiz
> > > Date: 2008-04-09 16:01:28 +0000 (Wed, 09 Apr 2008)
> > > New Revision: 19114
> > >
> > > Modified:
> > > trunk/freenet/src/freenet/support/DoublyLinkedList.java
> > > trunk/freenet/src/freenet/support/DoublyLinkedListImpl.java
> > >
> >
trunk/freenet/src/freenet/support/math/BootstrappingDecayingRunningAverage.java
> > > Log:
> > > javadoc and style fix
> > >
> > >
> > > Modified: trunk/freenet/src/freenet/support/DoublyLinkedList.java
> > > ===================================================================
> > > --- trunk/freenet/src/freenet/support/DoublyLinkedList.java
2008-04-09
> > 16:01:05 UTC (rev 19113)
> > > +++ trunk/freenet/src/freenet/support/DoublyLinkedList.java
2008-04-09
> > 16:01:28 UTC (rev 19114)
> > > @@ -7,30 +7,54 @@
> > > * @author tavin
> > > */
> > > public interface DoublyLinkedList {
> > > + public abstract Object clone();
> > >
> > > - public abstract Object clone();
> > > -
> > > + /**
> > > + * List element
> > > + */
> > > public interface Item {
> > > + /**
> > > + * Get next [EMAIL PROTECTED] Item}. May or may not return
> > > + * <code>null</code> if this is the last
<code>Item</code>.
> >
> > IIRC we have a bumper stopper item, don't we? Hmm, but we do check for
null...
> >
>
> No, we have two different method / behavior when that is the last item.
> 1. DoublyLinkedList.getNext(Item)
> --> always return null
>
> 2. DoublyLinkedList.Item.getNext() .
> --> return null /or/ DoublyLinkedListImpl._tailptr
>
> The second one involve some implementation details, hence the "may or may
not"
> phase. I did wondered why we need two different method.
>
> Eventually, I want to migrate all DoublyLinkedList usage to
> java.util.LinkedList / ArrayList / SortedSet. They are better tested
> and optimized by jre vendors. But this migration would take some time.Yes and no. We should only use DoublyLinkedList where we need it. But there are places where we do need it. Specifically, anywhere where an element needs to be able to remove itself - LRUHashtable for example, and IIRC there are other classes in support/ that need it. Using DoublyLinkedList gives us a significant performance gain here. > > Regards, > Daniel Cheng
pgpla1Io0i02f.pgp
Description: PGP signature
_______________________________________________ Devl mailing list [email protected] http://emu.freenetproject.org/cgi-bin/mailman/listinfo/devl
