好文档 - 专业文书写作范文服务资料分享网站

几种Java集合框架详解

天下 分享 时间: 加入收藏 我要投稿 点赞

<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' }

另外几种Java集合框架详解作者:chszs,未经博主允许不

得转载。经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs1、fastutilfastutil是一个开源的Java集合框架的扩展,它继承了Java Collection Framework,提供了数种特定类型的容器,包括映射map、集合set、列表list、优先级队列(prority queue),实现了java.util包的标准接口(还提供了标准类所没有的双向迭代器),还提供了很大的(64位)的array、set、list,以及快速、实用的二进制或文本文件的I/O操作类。

fastutil为专用的集合类提供了大容量的功能,而且类比普通Java集合类显得更紧凑、速度更快。

除了对象和原始类型,fastutil类还提供了对引用的支持,也即对象是可以使用等号操作符进行比较的,无需使用equals()方法。

fastutil以Apache 2.0许可证发布。使用它需要JDK 7以上版本。fastutil以JAR包的方式提供,要注意这个JAR包文件比较大,因为它包含了大量的类文件。如果你只想要fastutil的一部分,那么应该考虑实用AutoJar之类的根据来自动提取所需的类。官网地址: http://fastutil.di.unimi.it/相似的技术:HPPC、Koloboke、GS Collections、Trove Collections、Mahout Collectionsfastutil目前的最新版本为7.0.10版,这个最新的JAR包fastutil-7.0.10.jar大小为17MB。其Maven依赖为:<dependency>

<groupId>it.unimi.dsi</groupId> <artifactId>fastutil</artifactId> <version>7.0.10</version> </dependency> fastutil的在线API文档见:

http://fastutil.di.unimi.it/docs/fastutil 6在大数据方面进行了增强,提供了一套新的类集合使得可以处理很大的集合,尤其是当集合数据超过2GB(2^31)时。比如Hash Big Set仅仅受内存大小的限制。2、HPPC官网地址: http://labs.carrotsearch.com/hppc.html

官网地址: https://github.com/carrotsearch/hppc

HPPC即High Performance Primitive Collections for Java,对Java的原始集合类型如映射map、集合set、堆栈stack、列表list、队列deque等进行了扩展,提供了更佳的内存利用率,带来了更好的性能。

HPPC当前的最新版本为0.7.13、Trove官网地址: http://trove.starlight-systems.com/

Trove库提供了高速的Java集合类。GNU Trove库有两个目标:

1)提供一个免费、高速、轻量级的java.util集合API的实现。

这些实现被设计成可插拨的方式,以便替代标准JDK的集

合类。

2)提供原始的集合,API风格保持一致。 标准JDK使用包装器类来封装原始类型,比如

java.lang.Integer,java.lang.Float等,那么标准集合类也使用了包装后的类型。而对于Trove库来说,集合直接存储原始类型可以减少空间的使用量,并能带来显著的性能提升。GNU Trove库既可以用于服务器端应用,也可以用于客户端应用,它消耗的内存比标准集合框架更少。

GNU Trove库目前的最新版本为3.0.3版,很成熟的一个库。 应注意,Trove已经很久没更新了,此项目可以不予考虑。4、Mahout Collections官网地址:

https://mahout.apache.org/users/basics/mahout-collections.htmlMahout Collections库是一套容器类集合,它致力于解决标准Java集合框架的一些限制。Mahout Collections主要解决两方面的问题:

1)Java标准集合框架缺乏对原始类型的支持

2)Java标准集合框架缺乏对open hashing的支持 另外几种Java集合框架详解续作者:chszs,未经博主允许不得转载。经许可的转载需注明作者和博客主页:

http://blog.csdn.net/chszsfastutil库优于Trove库的地方:Trove库已经三年未更新了,属于非活跃的开源项目;而fastutil一直在更新。fastutil有更丰富的特性,支持超大的集

合(大于2^32,即4GB的集合),文档也更丰富。fastutil是一个开源的Java集合框架的扩展,它继承了Java Collection Framework,提供了数种特定类型的容器,包括映射map、集合set、列表list、优先级队列(prority queue),实现了java.util包的标准接口(还提供了标准类所没有的双向迭代器),还提供了很大的(64位)的array、set、list,以及快速、实用的二进制或文本文件的I/O操作类。fastutil为专用的集合类提供了大容量的功能,而且类比普通Java集合类显得更紧凑、速度更快。除了对象和原始类型,fastutil类还提供了对引用的支持,也即对象是可以使用等号操作符进行比较的,无需使用equals()方法。fastutil以Apache 2.0许可证发布。使用它需要JDK 7以上版本。把元素添加到fastutil集合与添加到标准Java集合使用的API是相同的,下面的代码示例展示了插入元素到标准JDK的ArrayList和插入元素到fastutil的DoubleArrayList。1、插入Double对象到JDK的ArrayList和插入Double对象到fastutil的DoubleArrayListimport java.util.ArrayList;

import it.unimi.dsi.fastutil.doubles.DoubleArrayList;public class DoubleArrayListTest {

public static void main(String[] args) { demoJdkArrayListForDoubles(); demoFastutilArrayListForDoubles();

几种Java集合框架详解

<dependency><groupId>com.goldmansachs</groupId><artifactId>gs-collections-testutils</artifactId><version>7.0.0</version><scope>tes
推荐度:
点击下载文档文档为doc格式
64idp4x88p036aw5tvxo0daes3y30z00x07
领取福利

微信扫码领取福利

微信扫码分享