Eclipse Collections अब तक का सबसे सर्वश्रेष्ट जावा कलेक्शन्स संग्रह है
जो आपके जावा प्रोग्रामिंग में आनंद लाता है|
अपने पसंदीदा बिल्ड टूल के साथ इसे आज ही अपने कोडबेस में एकीकृत करें!
<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>
implementation 'org.eclipse.collections:eclipse-collections-api:11.1.0' implementation 'org.eclipse.collections:eclipse-collections:11.1.0'
<dependency org="org.eclipse.collections" name="eclipse-collections-api" rev="11.1.0" /> <dependency org="org.eclipse.collections" name="eclipse-collections" rev="11.1.0" />
जावा 8 लैम्ब्डा और मेथड रेफरेन्स की शक्ति का करे उपयोग सीधे आपके कलेक्शन्स पे| समृद्ध एपीआई सीधे आपके संग्रह पर उपलब्ध हैं|
boolean anyPeopleHaveCats = this.people .anySatisfyWith(Person::hasPet, PetType.CAT); int countPeopleWithCats = this.people .countWith(Person::hasPet, PetType.CAT); MutableList<Person> peopleWithCats = this.people .selectWith(Person::hasPet, PetType.CAT)
boolean anyPeopleHaveCats = this.people .anySatisfy(person -> person.hasPet(PetType.CAT)); int countPeopleWithCats = this.people .count(person -> person.hasPet(PetType.CAT)); MutableList<Person> peopleWithCats = this.people .select(person -> person.hasPet(PetType.CAT));
boolean anyPeopleHaveCats = this.people .stream() .anyMatch(person -> person.hasPet(PetType.CAT)); long countPeopleWithCats = this.people .stream() .filter(person -> person.hasPet(PetType.CAT)) .count(); List<Person> peopleWithCats = this.people .stream() .filter(person -> person.hasPet(PetType.CAT)) .collect(Collectors.toList());
आप विभिन्न कंटेनर प्रकारों का उपयोग कर सकते हैं, उत्पन्ना के लिए आसान फैक्ट्री के तरीकों का लाभ उठा सकते हैं|
//परिवर्तनशील लिस्ट का आरम्भ empty(), of(), with() विधि के साथ MutableList<String> mutableListEmpty = Lists.mutable.empty(); MutableList<String> mutableListOf = Lists.mutable.of("One", "One", "Two", "Three"); MutableList<String> mutableListWith = Lists.mutable.with("One", "One", "Two", "Three"); //विभिन्न प्रकार के कंटेनर उपलब्ध हैं MutableSet<String> mutableSet = Sets.mutable.with("One", "One", "Two", "Three"); MutableBag<String> mutableBag = Bags.mutable.with("One", "One", "Two", "Three"); MutableStack<String> mutableStack = Stacks.mutable.with("One", "One", "Two", "Three"); MutableMap<String, String> mutableMap = Maps.mutable.with("key1", "value1", "key2", "value2", "key3", "value3"); MutableMultimap<String, String> multimapWithList = Multimaps.mutable.list.with("key1", "value1-1", "key1", "value1-2", "key2","value2-1"); MutableBiMap<String, String> mutableBiMap = BiMaps.mutable.with("key1", "value1", "key2", "value2", "key3", "value3");
//अपरिवर्तनीय लिस्ट का आरम्भ empty(), of(), with() विधि के साथ ImmutableList<String> immutableListEmpty = Lists.immutable.empty(); ImmutableList<String> immutableListOf = Lists.immutable.of("One", "One", "Two", "Three"); ImmutableList<String> immutableListWith = Lists.immutable.with("One", "One", "Two", "Three"); //विभिन्न प्रकार के कंटेनर उपलब्ध हैं ImmutableSet<String> immutableSet = Sets.immutable.with("One", "One", "Two", "Three"); ImmutableBag<String> immutableBag = Bags.immutable.with("One", "One", "Two", "Three"); ImmutableStack<String> immutableStack = Stacks.immutable.with("One", "One", "Two", "Three"); ImmutableMap<String, String> immutableMap = Maps.immutable.with("key1", "value1", "key2", "value2", "key3", "value3"); ImmutableMultimap<String, String> immutableMultimapWithList = Multimaps.immutable.list.with("key1", "value1-1", "key1", "value1-2", "key2","value2-1"); ImmutableBiMap<String, String> immutableBiMap = BiMaps.immutable.with("key1", "value1", "key2", "value2", "key3", "value3");
//सभी 8 प्रिमिटिव प्रकारों के लिए अस्थायी और स्थायी लिस्ट, सेट, बैग, स्टैक और मैप्स उपलब्ध हैं MutableIntList intList = IntLists.mutable.of(1, 2, 3); MutableLongList longList = LongLists.mutable.of(1L, 2L, 3L); MutableCharList charList = CharLists.mutable.of('a', 'b', 'c'); MutableShortList shortList = ShortLists.mutable.of((short)1, (short)2, (short)3); MutableByteList byteList = ByteLists.mutable.of((byte)1, (byte)2, (byte)3); MutableBooleanList booleanList = BooleanLists.mutable.of(true, false); MutableFloatList floatList = FloatLists.mutable.of(1.0f, 2.0f, 3.0f); MutableDoubleList doubleList = DoubleLists.mutable.of(1.0, 2.0, 3.0); // आप IntInterval के साथ पूर्णांक सूची बना सकते हैं IntInterval oneTo10 = IntInterval.fromTo(1, 10); // 1 से 10 तक पूर्णांक // [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] IntInterval oneTo10By3 = IntInterval.fromToBy(1, 10, 3); // 3 की वृद्धि के साथ 1 से 10 तक पूर्णांक // [1, 4, 7, 10] IntInterval oddsFrom1To10 = IntInterval.oddsFromTo(1, 10); // 1 से 10 तक विषम संख्या // [1, 3, 5, 7, 9] IntInterval evensFrom1To10 = IntInterval.evensFromTo(1, 10); // 1 से 10 तक की सम संख्या // [2, 4, 6, 8, 10]
Eclipse Collections सेट्स और मैप्स के साथ-साथ प्रिमिटिव कलेक्शन के स्मृति कुशल कार्यान्वयन प्रदान करता है|
सवारी लो एक्लिप्स कलेक्शन काटा, एक्लिप्स कलेक्शन की दुनिया की खोज करने के लिए एक सरल और मजेदार तरीका है| इस विशेष काटा को यूनिट परीक्षणों की एक श्रृंखला के रूप में स्थापित किया जाता है जो जान भुज कर विफल हैं| आपका कार्य एक्लिप्स कलेक्शन का उपयोग करके, उन्हें पास करना है|
@Test public void getFirstNamesOfAllPeople() { MutableList<Person> people = this.people; MutableList<String> firstNames = null; //नल को एक मुतबललिस्ट पर के ट्रान्सफोर्मशन मेथड से करे रिप्लेस| MutableList<String> expectedFirstNames = Lists.mutable.with("Mary", "Bob", "Ted", "Jake", "Barry", "Terry", "Harry", "John"); Assert.assertEquals(expectedFirstNames, firstNames); }
@Test public void getFirstNamesOfAllPeople() { MutableList<Person> people = this.people; MutableList<String> firstNames = people.collect(Person::getFirstName); MutableList<String> expectedFirstNames = Lists.mutable.with("Mary", "Bob", "Ted", "Jake", "Barry", "Terry", "Harry", "John"); Assert.assertEquals(expectedFirstNames, firstNames); }
एक्लिप्स कलेक्शंस की उत्पत्ति 2004 में Goldman Sachs में कैरमेल नामक कलेक्शन फ्रेमवर्क के रूप में शुरू हुई थी|
तब से फ्रेमवर्क विकसित हुआ है, और 2012 में, यह एक परियोजना के रूप में गिटहब के लिए खुला है
जीएस कलेक्शन|
जीएस कलेक्शंस कई बार प्रस्तुत किया गया है
सम्मेलनों
2012 में JVM समिट और 2014 JavaOne में शामिल था.
जावा 8, स्काला और जीएस कलेक्शन के बीच समानांतर आलसी कार्यान्वयन एक प्रदर्शन की तुलना पर प्रस्तुत किया गया
QCon New York 2014 में.
Also लेख GS Collections के बारे में
(भाग 1 /
भाग 2)
InfoQ.com पर प्रकाशित किया गया
जीएस कलेक्शन के रचनाकारों के उदाहरणों और साक्षात्कारों के माध्यम से इस जावा लाइब्रेरी की क्षमताओं को दिखाया|
कई वर्षों से, एक ही कंपनी के लगभग 40 डेवलपर्स ने संग्रह फ्रेमवर्क में योगदान दिया।
ओपन सोर्स प्रोजेक्ट की सर्वश्रेष्ठ प्रकृति को अधिकतम करने के लिए, जीएस कलेक्शंस को एक्लिप्स फाउंडेशन में स्थानांतरित कर दिया गया, 2015 में एक्लिप्स कलेक्शंस के रूप में फिर से ब्रांडेड कर दिया गया|
अब योगदान को स्वीकार करते हुए फ्रेमवर्क पूरी तरह से समुदाय के लिए खुला है!
लाइब्रेरी का एक व्यापक संदर्भ गाइड GitHub पर उपलब्ध है: निर्देशिका|
सोर्स कोड GitHub पर पाया जा सकता है: एक्लिप्स कलेक्शन|