Have a question that's not answered here? Ask it in the forums!


Installation/Compilation


Q: How do I build Trove from source?
A: Compilation requires Apache Ant. To build library jars, simply run the command "ant" in the top-level Trove directory. (Note: you're in the correct directory if the file "build.xml" is also in the directory).
To build files such that they look like a full release, run "ant release". The final file will be placed in "/output/dist".

Q: The release seems to be missing source code to some classes (TIntObjectHashMap.java, for example). Where are they?
A: Many Trove files are generated from templates found under "/src/gnu/trove/generate". To generate the Java source files, run "ant generate" in the top-level directory (see question #1). When compiled, the source files will be located in "/output/gen_src".


Usage


Q: Woah. There are a lot of classes here. How do I parse these names?
A: Most Trove classes start with the letter "T" to indicate that they're part of the Trove library. After that is typically the type or types the collection will hold. For Sets, there's only one type. For example, TLongHashSet will hold primitive longs. Map types indicate the key type and then the value type. For example, TIntObjectHashMap holds Object values (which can be defined more tightly via generics) keyed by primitive ints.

Q: What are Procedures and why do I want to use them (via forEachEntry(), for example)?
A: Procedures are a faster/more efficient way to iterate over data in a Collection. As opposed to an Iterator or retrieving key/value arrays, they require no object allocation and can implemented extremely efficiently. It's highly recommended that this approach be used when performance is important.


Licensing


Q: What license does Trove use?
A: Trove is available under the GNU Lesser (a.k.a. Library) General Public License. More details are available in the License section.

Q: Why is the LGPL being used?
A: The LGPL has all of the restrictions of the GPL except that you may use the code at compile time without the derivative work becoming a GPL work. This allows the use of the code in proprietary works. The LGPL license is completely compatible with the GPL license with less restrictions.

Q: Can I use Trove in my commercial software? Does my software have to change its license to use Trove?
A: Yes, you can use Trove in commercial software. No licensing changes are necessary to do so.

Q: I think Trove should use the <pick your favorite license> license. How can I get it that way?
A: At this time, Trove is only available under the LGPL (see above).