`
aswang
  • 浏览: 847804 次
  • 性别: 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 类的版本。

    trove.jar .

    trove.jar 是一个Java应用程序,它包含Trove库的实现。Trove是一个开源的Java集合框架,专注于提供高性能的数据结构,如固定大小的数组、哈希表和集合。这个库被设计用来替代Java标准库中的数据结构,尤其是当性能...

    trove-3.1a1

    总的来说,Trove是一个适用于高性能、低内存消耗场景的Java集合框架,尤其在大数据处理、科学计算等领域具有广泛的应用。开发者可以根据具体需求权衡,选择是否将其引入项目,以提升代码的执行效率和内存管理能力。...

    trove-1.0.2.jar

    Trove-1.0.2.jar是该库的一个特定版本,发布于2004年,它包含了Trove所有功能的实现。使用这个版本的jar包,开发者可以直接将其引入到自己的Java项目中,以便利用Trove提供的高效数据结构。这些数据结构通常比Java...

    Openstack Trove概要 .docx

    OpenStack Trove是OpenStack平台中的一个核心组件,专门用于提供数据库即服务(Database as a Service,简称DBaaS)。Trove的设计目标是让用户能够轻松地在云端管理和部署数据库,享受到数据库管理和云计算的双重...

    OpenStack Trove Essentials(English)

    OpenStack Trove是OpenStack生态系统中的一个核心组件,它提供了全托管的数据库即服务(DBaaS)。通过Trove,用户可以在OpenStack云上轻松地创建、扩展和管理多种类型的数据库实例,如MySQL、MongoDB、Cassandra等,...

    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 ...

    trove4j库jar包

    trove4j库jar包

    Trove 集合类源码

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

    Java开发常用包 trove.jar

    trove.jar

    OpenStack Trove.pdf

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

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

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

    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. ...

    PyPI 官网下载 | trove_dashboard-9.0.0.0b2-py2-none-any.whl

    标题中的“PyPI 官网下载 | trove_dashboard-9.0.0.0b2-py2-none-any.whl”表明这是一个从Python Package Index(PyPI)官方源下载的软件包,名为“trove_dashboard”。这个包的版本是9.0.0.0b2,适用于Python 2.x...

    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-Mod-Loader:Trove Mod Loader 允许您轻松加载模组列表,而无需 Glyph 客户端重新下载文件

    为了解决这个问题,开发者们创造了一款名为“Trove Mod Loader”的工具,它使得模组加载变得极为便捷,极大地提升了玩家的游戏体验。 Trove Mod Loader是基于Java语言开发的,Java作为一种跨平台的编程语言,拥有...

Global site tag (gtag.js) - Google Analytics