`
aswang
  • 浏览: 837892 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

一个快速、轻量级 Collection 库 Trove

    博客分类:
  • java
阅读更多

Trove一个快速、轻量级针对java原子类型(byte,int,float,long等)的Collection 类的集合。其官方网站:http://trove.starlight-systems.com/home。

 

据官方介绍,Trove有两个目标,其一是提供免费的、快速的、轻量级的java Collections API的一个实现。这些实现被设计为可替换对jdk集合代码的使用。其二是提供针对原子类型的集合。在jdk中主要是通过原子类型的包括类型如Integer,Long等,再配合面向对象的集合来实现。如在jdk中如果需要使用int类型的集合,一般都是int的包装类Integer结合List或者其它的集合类。在大多数应用程序中,使用存储原子类型的集合,会减少对内存的使用,同时也不会对性能带来损失。

 

最近在阅读一个开源的android项目源码时,发现其中使用到了这个库,google了一番,发现是个好东西,随记下来以备后用。

 

这写几个简单的例子:

1、支持int类型的List:TIntArrayList

 

public class IntList {
	public static void main(String[] args) {
		TIntArrayList intList = new TIntArrayList();
		intList.add(1);
		intList.add(6);
		intList.add(3);
		intList.add(2);
		
		for (int i=0;i<intList.size();i++) {
			System.out.println(intList.get(i));
		}
		
		intList.transformValues(new TIntFunction() {
			@Override
			public int execute(int v) {
				return v * 2;
			}
		});
		System.out.println(intList.toString());
		
		intList.sort();
		
		System.out.println(intList.toString());
		
		int[] arr = intList.toArray();
		for (int i=0;i<arr.length;i++) {
			System.out.println(arr[i]);
		}
		
	}
}

执行结果:


1
6
3
2
{2, 12, 6, 4}
{2, 4, 6, 12}
2
4
6
12

  

 

通过上面的代码示例,可以发现使用方式和jdk提供的集合使用方式一致,这也许就是trove说的,可以用来替换对jdk集合的使用了。这里它还提供了一些特殊的方法,比如transformValues,这个方法可以根据你提供的TIntFunction来对TIntArrayList内部的值进行转换。比如它还支持对内部元素直接排序,以及重载了toString方法,直接返回内部的元素。

 

2、再看一个简单的支持int,int的map:

 

import gnu.trove.map.TIntIntMap;
import gnu.trove.map.hash.TIntIntHashMap;

public class IntMap {
	public static void main(String[] args) {
		TIntIntMap intMap = new TIntIntHashMap();
		
		intMap.put(0, 10);
		intMap.put(1, 10);
		intMap.put(2, 20);
		intMap.put(3, 30);
		
		System.out.println(intMap.get(0));
		System.out.println(intMap.get(1));
		System.out.println(intMap.get(2));
		System.out.println(intMap.get(3));
		
	}
}

 执行结果:

10
10
20
30

  记得以前写代码的时候,希望能有一个支持int到int的map,但是在没有更好的选择之前,只能选择使用Integer来实现,不过以后可以使用这个库了。trove提供了int到byte,int到float,int到long等多种map。

 

暂时介绍到这了,后面有使用到再接着写!

 

分享到:
评论

相关推荐

    trove核心jar

    Trove一个快速、轻量级针对java原子类型(byte,int,float,long等)的Collection 类的集合。

    trove-3.0.3

    java高性能容器库,Trove 是一个快速、轻量级 Collection 类的集合。Trove 提供所有标准 java.util Collections 类的更快的版本以及能够直接在原语(primitive)(例如包含 int 键或值的 Map 等)上操作的 ...

    trove-2.0.2

    Trove 是一个快速、轻量级 Collection 类的集合。Trove 提供所有标准 java.util Collections 类的更快的版本以及能够直接在原语(primitive)(例如包含 int 键或值的 Map 等)上操作的 Collections 类的版本。

    Openstack Trove概要 .docx

    Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack Trove概要Openstack ...

    OpenStack.Trove.Essentials.1785285610.pdf

    Build your own cloud based Database as a Service using OpenStack Trove About This Book Familiarize yourself with the concept of Database as a Service and make your existing system scalable and ...

    OpenStack.Trove.1484212223

    OpenStack Trove is your step-by-step guide to set up and run a secure and scalable cloud Database as a Service (DBaaS) solution. The book shows you how to set up and configure the Trove DBaaS ...

    trove.jar .

    trove.jar .

    trove4j库jar包

    trove4j库jar包

    trove-3.1a1

    trove-3.1a1.zip https://bitbucket.org/robeden/trove/downloads

    Java开发常用包 trove.jar

    trove.jar

    OpenStack Trove.pdf

    OpenStack Trove,简化IT操作流程,降低使用数据库使用门槛举个例子,曾经我搭建一个LAMP网站,数据库要自己安装,创建,授权,必要的话,还要自己做主从很繁琐,而且不是专业人员也搞不定,有了Dbaas后,我只需要在...

    trove-1.0.2.jar

    常用的trove这个jar包亲测可以使用,分享给大家。

    Trove 集合类源码

    当你需要基本数据类型的集合时,你需要自定义集合类,或使用第三方库,如 Trove 。出于性能考虑,使用TIntObjectHashMap,效率会高于直接使用JDK的HashMap,因为略去了基本类型自动包装和解包的动作。该资源为源码包...

    openstack中trove模块的mysql数据库表脚本

    openstack中trove模块的mysql数据库表脚本

    OpenStack Trove Essentials(English)

    OpenStack Trove Essentials(English)非常清晰的版本,需要的可以下下来收藏,很好的材料!

    深入理解OpenStack Trove.pdf

    深入理解OpenStack Trove.pdf

    OpenStack Trove Essentials(PACKT,2016)

    Since Trove is one of the most recent projects of OpenStack, DBAs and system administrators can find it difficult to set up and run a DBaaS using OpenStack Trove. This book helps DBAs make that step. ...

    OpenStack Trove(Apress,2015)

    OpenStack Trove is your step-by-step guide to set up and run a secure and scalable cloud Database as a Service (DBaaS) solution. The book shows you how to set up and configure the Trove DBaaS ...

    openstack-trove-ui-13.0.0-1.el8.noarch.rpm

    离线安装包,亲测可用

    Trove-crx插件

    语言:English (United States) 将重点发送到概念。 Trove可以在网络上的任何位置捕获重要信息,并将其保存到Notion。 使用Trove,您可以直接在浏览器中打开...社交-将多个人添加到概念页面中,并共同添加链接和亮点!

Global site tag (gtag.js) - Google Analytics