GS Collections v5.1.0 Release Notes
Release Date: 2014-06-02 // almost 10 years ago-
Binaries
Javadoc
JDiff
Differences between 5.0.0 and 5.1.0
Acquiring GS Collections
Maven
\<dependency\> \<groupId\>com.goldmansachs\</groupId\> \<artifactId\>gs-collections-api\</artifactId\> \<version\>5.1.0\</version\> \</dependency\> \<dependency\> \<groupId\>com.goldmansachs\</groupId\> \<artifactId\>gs-collections\</artifactId\> \<version\>5.1.0\</version\> \</dependency\> \<dependency\> \<groupId\>com.goldmansachs\</groupId\> \<artifactId\>gs-collections-testutils\</artifactId\> \<version\>5.1.0\</version\> \<scope\>test\</scope\> \</dependency\> \<dependency\> \<groupId\>com.goldmansachs\</groupId\> \<artifactId\>gs-collections-forkjoin\</artifactId\> \<version\>5.1.0\</version\> \</dependency\>
Ivy
\<dependency org="com.goldmansachs" name="gs-collections-api" rev="5.1.0" /\> \<dependency org="com.goldmansachs" name="gs-collections" rev="5.1.0" /\> \<dependency org="com.goldmansachs" name="gs-collections-testutils" rev="5.1.0" /\> \<dependency org="com.goldmansachs" name="gs-collections-forkjoin" rev="5.1.0"/\>
👌 Improvements
🐎 Java Microbenchmark Harness performance test suite
🐎 There are two new modules named
jmh-scala-tests
andjmh-tests
which include new performance tests leveraging Java Microbenchmark Harness. They supplement the existingperformance-tests
module. The focus of these tests is to compare the performance of various iteration patterns across several libraries, including GS Collections, Java 8 Streams, Scala collections, and Guava. Each iteration pattern is tested in serial and in parallel. Where the API is available, they are also tested eagerly and lazily.✅ As an example, here is the test of the GS Collections implementation of
count()
, using serial eager evaluation.@GenerateMicroBenchmarkpublic void serial\_eager\_gsc() { int evens = this.integersGSC.count(each -\> each % 2 == 0); Assert.assertEquals(SIZE / 2, evens); }
✅ Use of lambdas in the test suites
✅ The GS Collections library is compiled with Java 5 to ensure its backwards compatibility. However, the test modules are free to use any version of Java. Most of the test modules now use Java 8. We've replaced all of the anonymous inner classes with lambdas or method references. We've also replaced many usages of code block factories with the equivalent lambda or method reference. For example, instead of using
Functions.getToString()
, we useString::valueOf
in most tests.