• Java集合框架GS Collections具体解释


    Java集合框架GS Collections具体解释

    作者:chszs。未经博主同意不得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs

    GS Collections是一个开源的基于Java的集合框架。它兼容JDK的List、Set、Map实现。并提供了一套功能丰富的API和工具类集合,其迭代循环的实现是受Smalltalk集合框架的启示。GS Collections库的模块兼容Java 5,包含gs-collections-api。gs-collections,gs-collections-testutils。

    GS Collections眼下的最新版本号为7.0.0版。

    主页见: https://github.com/goldmansachs/gs-collections

    GS Collections特性:

    1)改进了易读性,降低了迭代循环代码的反复
    2)实现了数个高级迭代模式(选择select、拒绝reject、收集collect、注入inject),人性化的容器接口,继承了标准JDK的接口。
    3)对于Collections、Arrays、Maps、Strings等提供了一致的迭代机制
    4)对标准的ArrayList、HashSet和HashMap提供了经过优化的高性能、低内存利用率的替代
    5)在工具类中运行了很多其它幕后的优化
    6)封装了非常多结构复杂的并行迭代和懒惰估算
    7)加入了新的容器,包含Bag、Interval、Multimap、BiMap,以及提供了非常多容器类型的不可变(Immutable)版本号
    8)从2005年開始公布,是一个成熟的库

    GS Collections的使用:

    GS Collections把迭代丰富仿照容器类型中。并使用匿名的内部类来模拟Lambdas表达式。

    GS Collections的编程风格如以下代码所看到的:

    MutableList<Person> people = FastList.newListWith(person1, person2, person3);
    MutableList<String> sortedLastNames = people.collect(Person.TO_LAST_NAME).sortThis();
    System.out.println("Comma separated, sorted last names: " + sortedLastNames.makeString());
    

    Person.TO_LAST_NAME被定义为Person类的一个常量函数

    public static final Function<Person, String> TO_LAST_NAME = new Function<Person, String>() {
        public String valueOf(Person person) {
            return person.lastName;
        }
    };
    

    对于Java 8。此函数能够使用Lambda表达式替代:

    MutableList<String> sortedLastNames = people.collect(person -> person.getLastName()).sortThis();
    

    或者是用方法引用替代:

    MutableList<String> sortedLastNames = people.collect(Person::getLastName).sortThis();
    

    GS Collections的Maven依赖

    <dependency>
      <groupId>com.goldmansachs</groupId>
      <artifactId>gs-collections-api</artifactId>
      <version>7.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.goldmansachs</groupId>
      <artifactId>gs-collections</artifactId>
      <version>7.0.0</version>
    </dependency>
    <dependency>
      <groupId>com.goldmansachs</groupId>
      <artifactId>gs-collections-testutils</artifactId>
      <version>7.0.0</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>com.goldmansachs</groupId>
      <artifactId>gs-collections-forkjoin</artifactId>
      <version>7.0.0</version>
    </dependency>
    

    Gradle依赖为

    dependencies {
        compile 'com.goldmansachs:gs-collections-api:7.0.0'
        compile 'com.goldmansachs:gs-collections:7.0.0'
        testCompile 'com.goldmansachs:gs-collections-testutils:7.0.0'
        compile 'com.goldmansachs:gs-collections-forkjoin:7.0.0'
    }
    
  • 相关阅读:
    GKB版本与UTF-8版本有什么区别(转载)
    如何与项目开发方对接
    php查询数据集的几种方式(mysql_unbuffered_query()与mysql_query()的区别)
    怎么去执行文件读写 ?
    Python中(集合、元祖、字典)等词汇基本语法
    Python入门~list 相关语法
    Python入门-基础语法实践
    newman + postman 环境搭建
    萌新驾到,请多多关照!
    切片、非空即真
  • 原文地址:https://www.cnblogs.com/mthoutai/p/7244351.html
Copyright © 2020-2023  润新知