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一个快速、轻量级针对java原子类型(byte,int,float,long等)的Collection 类的集合。
java高性能容器库,Trove 是一个快速、轻量级 Collection 类的集合。Trove 提供所有标准 java.util Collections 类的更快的版本以及能够直接在原语(primitive)(例如包含 int 键或值的 Map 等)上操作的 ...
Trove 是一个快速、轻量级 Collection 类的集合。Trove 提供所有标准 java.util Collections 类的更快的版本以及能够直接在原语(primitive)(例如包含 int 键或值的 Map 等)上操作的 Collections 类的版本。
trove.jar 是一个Java应用程序,它包含Trove库的实现。Trove是一个开源的Java集合框架,专注于提供高性能的数据结构,如固定大小的数组、哈希表和集合。这个库被设计用来替代Java标准库中的数据结构,尤其是当性能...
总的来说,Trove是一个适用于高性能、低内存消耗场景的Java集合框架,尤其在大数据处理、科学计算等领域具有广泛的应用。开发者可以根据具体需求权衡,选择是否将其引入项目,以提升代码的执行效率和内存管理能力。...
Trove-1.0.2.jar是该库的一个特定版本,发布于2004年,它包含了Trove所有功能的实现。使用这个版本的jar包,开发者可以直接将其引入到自己的Java项目中,以便利用Trove提供的高效数据结构。这些数据结构通常比Java...
OpenStack Trove是OpenStack平台中的一个核心组件,专门用于提供数据库即服务(Database as a Service,简称DBaaS)。Trove的设计目标是让用户能够轻松地在云端管理和部署数据库,享受到数据库管理和云计算的双重...
OpenStack Trove是OpenStack生态系统中的一个核心组件,它提供了全托管的数据库即服务(DBaaS)。通过Trove,用户可以在OpenStack云上轻松地创建、扩展和管理多种类型的数据库实例,如MySQL、MongoDB、Cassandra等,...
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包
当你需要基本数据类型的集合时,你需要自定义集合类,或使用第三方库,如 Trove 。出于性能考虑,使用TIntObjectHashMap,效率会高于直接使用JDK的HashMap,因为略去了基本类型自动包装和解包的动作。该资源为源码包...
trove.jar
OpenStack Trove,简化IT操作流程,降低使用数据库使用门槛举个例子,曾经我搭建一个LAMP网站,数据库要自己安装,创建,授权,必要的话,还要自己做主从很繁琐,而且不是专业人员也搞不定,有了Dbaas后,我只需要在...
openstack中trove模块的mysql数据库表脚本
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”表明这是一个从Python Package Index(PyPI)官方源下载的软件包,名为“trove_dashboard”。这个包的版本是9.0.0.0b2,适用于Python 2.x...
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 Mod Loader”的工具,它使得模组加载变得极为便捷,极大地提升了玩家的游戏体验。 Trove Mod Loader是基于Java语言开发的,Java作为一种跨平台的编程语言,拥有...