从
https://www.eclipse.org/collections/:
Eclipse Collections的历史
Eclipse Collections最初作为Goldman Sachs的一个名为Caramel的集合框架诞生于2004年。此后,该框架不断发展壮大,并在2012年以GS Collections的名义开源至GitHub。
GS Collections曾在多个会议上进行介绍,包括2012年的JVM Summit和2014年的JavaOne。2014年在QCon New York上还曾对比了Java 8、Scala和GS Collections并行lazy实现的性能。此外,关于GS Collections的文章(Part1 / Part2)已经发布在InfoQ.com上,展示了该集合框架的一些能力,并且采访了GS Collections的创建者。
多年来,同一家公司的约40位开发人员为集合框架做出了贡献。
为了充分发挥开源项目的优势,GS Collections于2015年迁移到Eclipse Foundation,并更名为Eclipse Collections。现在,该框架完全开放给社区,欢迎大家的贡献!
看起来它仍然很活跃。如果你阅读上面的页面,它可以完全使用Java 8 lambda表达式。
boolean anyPeopleHaveCats =
this.people
.anySatisfy(person -> person.hasPet(PetType.CAT));
boolean anyPeopleHaveCats =
this.people
.stream()
.anyMatch(person -> person.hasPet(PetType.CAT));
当你查看
https://github.com/eclipse/eclipse-collections上的存储库时,你会发现仍然有贡献被合并到其中。
因此,我认为它不是被弃用了,而是一个额外的功能,可以与您自己的代码和Java流一起使用,使流处理变得更加容易。
它仍然添加了易于比较的函数等等,这样您就不必编写自己的代码,只需实现适合您需求的现成的lambda方法或流解析器。它似乎有些多余,因为anySatisfy很像filter,但通过在代码本身中写出确切的预期发生情况,它确实增加了代码的清晰度。
在某些情况下,堆栈和袋子对我很有用。有时候你不想使用流,因为集合很小(1000或更少),初始化流的开销不值得。 这使得编写更小、性能更好的代码变得更加容易。
它可能不像Java8之前那样重要,但它仍然有其存在的价值。