fastutil优化数据结构使用示例

fastutil githup 链接

pom.xml文件引入依赖
<dependency>  
  <groupId>fastutil</groupId>
  <artifactId>fastutil</artifactId>
  <version>5.0.9</version>
</dependency>

java原生数据结构与fastutil的对应关系,列出了比较常用的几个:

List相关:

List<Integer> list = new ArrayList<>(); 对应fastutil的

IntList fast_list = new IntArrayList();

Map相关

fastutil的map命名规则是 keyType2valueTypeMap,比如java的Map<Double,Double> 在fastutil中可对应

Double2DoubleMap d_map = new Double2DoubleOpenHashMap();

如果key为String类型,value为double类型,则:

Object2DoubleMap<String> map = new Object2DoubleOpenHashMap<>();

如果key为String类型,value为自定义的类,则:

Object2ObjectMap<String, JavaBean> map = new Object2ObjectOpenHashMap<>();

如果在spark中使用fastutil,并且使用kryo序列化,那么不要忘记执行kryo注册,比如:

conf.registerKryoClasses(new Class[]{Double2ObjectOpenHashMap.class,Object2ObjectOpenHashMap.class});

相关推荐