A library for diffing java.util.Lists
Posted by timboudreau on May 12, 2009 at 11:18 AM PDT
I recently set up a new project on kenai.com - this is something that has been available in NetBeans for years, and is probably useful to a wider audience. It is a library for taking two java.util.Lists and generating a diff between them.
Collections as models for Swing components. But most revolve around observable lists, or wrapping lists in observable wrappers.
style="border-style:solid;border-width:12px;border-color:white;"/>
But sometimes, you simply don't control the code that is handing you a list. I was in that situation when writing the Navigator for NetBeans 4 — I could get a list of class members, but there was no way to detect changes between them except to compare the previous list I got with the new one. So I wrote this general-purpose library for generating diffs between lists. It has proven useful in many projects, some not NetBeans-related, so it makes more sense as a project apart from NetBeans. The main wiki page for the project describes it, and the choices of algorithms available, in detail. With it, there is also a subproject that implements Swing
ListModels, to make it easy to use with JLists (it will be there as soon as I make a build of NB with this bug fixed).
Blog Links >>
- Login or register to post comments
- Printer-friendly version
- timboudreau's blog
- 897 reads






Comments
by timboudreau - 2009-05-14 08:01
This library has been around for > 5 years. I don't know if either of the projects mentioned in comments above existed then. Regardless, a developer on NetBeans has to jump *huge* legal hurdles with lawyers to add a foreign binary to the NetBeans codebase (intellectual property due diligence). Even if those did exist in 2002, doing a six month process to use one of them was not something I was going to wait for (I'm not saying this is the way it should be, but it is the way it is).by estanislaobosch - 2009-05-14 07:45
Didn't you first look at commons collections? The class CollectionUtils has a method disjunction that does what you need. Why do we programmers allways have the need to reinvent the wheel even if we can see it with our own eyes?by firari - 2009-05-12 21:11
Did you see/examine java-diff? (http://www.incava.org/projects/java/java-diff/)