Two days ago I was reading this article about LISP like lists implemented in Java,
which reminded me I had written an implementation of a VList in Java. It can be found
here, along with a unit test.I make no garantee this is the best or fastest implementation possible!
It implements: get(n), first (head in Haskell), rest() (tail in Haskell), size(), iterator() and map(Mapper), where Mapper is the mapping interface I mentioned earlier.
It's using Java Generics of course. Am I right in thinking there is no way with Java generics to get rid of the compilation warnings and of the necessity of passing the Class object in the code that creates a new array of the generic type?
10 comments:
You can get rid of the Class argument to the VList constructor only by using Object[] internally, which would involve lots of casts.
The way you are doing it is better, though.
Did you see any good and deep article about VList? daVinci@mail.ru
http://en.wikipedia.org/wiki/VList is the first place I can think of...
What about Remove(i) or Insert(i) opertions? Is there any info about it?
Mmmhh, I don't think a VList would be the best for these operations. I know there's some more exotic varieties of linked list that can maybe give you good performance for these operations. Funnily, I don't really use these operations a lot. Strive to have algorithms that insert and remove at one extremity of a list...
Does anyone know of a working link for the code mentioned in this article?
Sorry, all the links are dead as I didn't renew my account with the hosting provider where the code was. I'll find another place to put it.
OK, links are fixed, I moved the code to a little Google AppEngine application I made
The links of code mentioned in this article doesn't work. could you put the code into github.com?
Post a Comment