Awesome
<!-- ~ Copyright (c) 2022 Goldman Sachs and others. ~ All rights reserved. This program and the accompanying materials ~ are made available under the terms of the Eclipse Public License v1.0 ~ and Eclipse Distribution License v. 1.0 which accompany this distribution. ~ The Eclipse Public License is available at https://www.eclipse.org/legal/epl-v10.html ~ and the Eclipse Distribution License is available at ~ https://www.eclipse.org/org/documents/edl-v10.php. --><a href="https://eclipse.dev/collections/"><img src="https://github.com/eclipse/eclipse-collections/blob/master/artwork/eclipse-collections-logo.png" height="50%" width="50%"></a>
English | Deutsch | Ελληνικά | Español | 中文 | Français | 日本語 | Norsk (bokmål) | Português-Brasil | Русский | हिंदी | Srpski (latinica)
Eclipse Collections is a comprehensive collections library for Java. The library enables productivity and performance by delivering an expressive and efficient set of APIs and types. The iteration protocol was inspired by the Smalltalk collection framework, and the collections are compatible with the Java Collection Framework types.
Eclipse Collections is compatible with Java 8+. Eclipse Collections is a part of the OpenJDK Quality Outreach program, and it is validated for different versions of the OpenJDK.
Why Eclipse Collections?
- Productivity
- Supports eager, lazy, serial and parallel iteration patterns
- Rich, functional, and fluent APIs with eager methods available directly on collection types
- Provides
List
,Set
,Bag
,Stack
,Map
,Multimap
,BiMap
,Interval
object container types - Readable,
Mutable
, andImmutable
interfaces for each collection type with covariant return types - Mutable and Immutable Collection Factories
- Adapters and Utility classes for JCF Types
- Performance
- Maturity
- Eclipse Collections has been actively developed and used in financial services applications since 2004
- Eclipse Collections existed for a decade before concise lambda expressions were added in Java 8
Learn Eclipse Collections
- Blog Series: Getting Started with Eclipse Collections
- Blog Series: The missing Java data structures no one ever told you about
- Blog: Java has Streams. Do we need third-party collections?
- Some Quick Code Examples
- Eclipse Collections Katas, a fun way to help you learn idiomatic Eclipse Collections usage.
- Start Here - Pet Kata
- Continue Here - Company Kata
- Eclipse Collections Reference Guide and Javadoc
- Serializing Eclipse Collections with Jackson
- Articles and Blogs
- Some OSS projects that use Eclipse Collections
- Neo4J, FINOS Legend, Reladomo, Liftwizard, Exchange Core, Dataframe EC, MapDB, Code Browser, Obevo, BNY Mellon Code Katas, Eclipse Nebula NatTable, Eclipse VIATRA, Jackson Datatypes Collections
- If you work on an open source project that uses Eclipse Collections, let us know!
Eclipse Collections and JDK Compatibility Matrix
EC | JDK 5 - 7 | JDK 8 | JDK 9 - 10 | JDK 11 - 14 | JDK 15 - 21 |
---|---|---|---|---|---|
7.x.x | ✓ | ✓ | |||
8.x.x | ✓ | ||||
9.x.x | ✓ | ✓ | ✓ | ||
10.x.x | ✓ | ✓ | ✓ | ||
10.4.0 | ✓ | ✓ | ✓ | ✓ | |
11.x.x | ✓ | ✓ | ✓ | ✓ | |
12.x.x | ✓ | ✓ |
Note: Eclipse Collections 12.x will be compatible with Java 11+. EC 12.0 has not been released as GA yet, but there are a few milestone releases available to test with.
Acquiring Eclipse Collections
Maven
<dependency>
<groupId>org.eclipse.collections</groupId>
<artifactId>eclipse-collections-api</artifactId>
<version>11.1.0</version>
</dependency>
<dependency>
<groupId>org.eclipse.collections</groupId>
<artifactId>eclipse-collections</artifactId>
<version>11.1.0</version>
</dependency>
Gradle
implementation 'org.eclipse.collections:eclipse-collections-api:11.1.0'
implementation 'org.eclipse.collections:eclipse-collections:11.1.0'
OSGi Bundle
Eclipse software repository location: https://download.eclipse.org/collections/11.1.0/repository
How to Contribute
We welcome contributions! We accept contributions via pull requests here in GitHub. Please see How To Contribute to get started.
Additional information
- Project Website: https://eclipse.dev/collections
- Eclipse PMI: https://projects.eclipse.org/projects/technology.collections
- StackOverflow: https://stackoverflow.com/questions/tagged/eclipse-collections
- Mailing lists: https://dev.eclipse.org/mailman/listinfo/collections-dev
- Forum: https://www.eclipse.org/forums/index.php?t=thread&frm_id=329
- Working with GitHub: https://github.com/eclipse/eclipse-collections/wiki/Working-with-GitHub