GNU Trove trove4j】的更多相关文章

GNU Trove (http://trove4j.sourceforge.net/) 是一个Java 集合类库.在某些场景下,Trove集合类库提供了更好的性能,而且内存使用更少.以下是Trove中跟open addressing相关的几个特性: Trove maps/sets没有使用chaining解决hash冲突,而是使用了open addressing.跟chaining相比,open addressing对hash算法的要求更高.通过TObjectHashingStrategy 接口,…
哈希表(Hash Table,又叫散列表),是存储键值对(Key-value)的表,之所以不叫它Map(键值对一起存储一般叫做Map),是因为它下面的特性:它能把关键码(key)映射到表中的一个位置来直接访问,这样访问速度就非常快.其中的映射函数称为散列函数(Hash function). 1) 对于关键字key, f(key)是其存储位置,f则是散列函数 2) 如果key1 != key2 但是 f(key1) == f(key2),这种现象称为冲突(collison).冲突不可避免,这是因为…
借助heap数据结构实现. 以小顶heap为例(说明值越小优先级越高,如距离),代码如下: // PriorityQueue.java // Java Spatial Index Library // Copyright (C) 2008 aled@users.sourceforge.net // // This library is free software; you can redistribute it and/or // modify it under the terms of the…
1. [代码]jsi-rtree-library /** *  */package com.mycompany.project; //package net.sourceforge.jsi.examples; import java.util.ArrayList;import java.util.List; import org.apache.log4j.Logger; //import org.slf4j.*;import com.infomatiq.jsi.*; import gnu.tro…
另外几种Java集合框架具体解释续 作者:chszs,未经博主同意不得转载.经许可的转载需注明作者和博客主页:http://blog.csdn.net/chszs fastutil库优于Trove库的地方:Trove库已经三年未更新了,属于非活跃的开源项目.而fastutil一直在更新.fastutil有更丰富的特性.支持超大的集合(大于2^32,即4GB的集合).文档也更丰富. fastutil是一个开源的Java集合框架的扩展,它继承了Java Collection Framework.提供…
1 常用工具 JVisual vm:可以直接通过软件包下载,支持本地以及远程JVM监控 JMH:Java Microbenchmark Harness,测试基准组件,精度可达纳秒级 JITWatch:JIT日志分析GUI工具 2 日志库 2.1 日志框架 JUL:JDK自带日志库,也就是java.util.logging Log4j/Log4j2:Apache的一个开源项目,高度可配置 Logback:开源日志组件 2.2 日志门面 JCL:Jakarta Commons Logging,Apa…
C 语言在 Linux 系统中的重要性自然是无与伦比.不可替代,所以我写 Linux 江湖系列不可能不提 C 语言.C 语言是我的启蒙语言,感谢 C 语言带领我进入了程序世界.虽然现在不靠它吃饭,但是仍免不了经常和它打交道,特别是在 Linux 系统下. Linux 系统中普遍使用的是 GNU-C,这里有一份Gnu-C语言手册.pdf.The GNU C Reference Manual 的主页在这里:http://www.gnu.org/software/gnu-c-manual/.C 语言的…
不可否认,这次的标题有点长.之所以把标题写得这么详细,主要是为了搜索引擎能够准确地把确实需要了解 GCC 生成 16 位实模式代码方法的朋友带到我的博客.先说一下背景,编写能在 x86 实模式下运行的 16 位代码,这个话题确实有点复古,所以能找到的资料也相应较少.要运行 x86 实模式的程序,目前我知道的只有两种方式,一种是使用 DOS 系统,另一种是把它写成引导扇区的代码,在系统启动时直接运行.很显然,许多讲自己实现操作系统的书籍都会讲到 x86 实模式,也只有自己实现操作系统引导的朋友需要…
在我该系列的之前的所有随笔中,都是采用 Linux 发行版自带的包管理工具(如 apt-get.yum 等)进行软件的安装和卸载,从来没有向大家展示使用源代码自行编译安装软件的方法.但是长期混迹于 Unix/Linux 世界的童鞋们都知道,从源代码自行编译安装软件并不是那么的难,一般都是这样三个步骤: configure make make install 之所以能够把源代码的构建管理得如此简单,这得益于 Gnu 的 Autotools 工具链.在上面的三个命令中,configure 是一个脚本…
用过 Bash 命令行的一定知道,Bash 有几个特性: TAB 键可以用来命令补全 ↑ 或 ↓ 键可以用来快速输入历史命令 还有一些交互式行编辑快捷键: C-A / C-E 将光标移到行首/行尾 C-B / C-F 将光标向左/向右移动一个位置 C-D 删除光标下的一个字符 C-K 删除光标及光标到行尾的所有字符 C-U 删除光标到行首的所有字符 ... 同样的操作在很多交互式程序都有类似的操作,例如 ftp.gdb 等等,那么你是否想过这些是如何实现的呢?如果我们要做一个命令行下的交互式开源…