具有2种不同类型的数组的最有效数据数据结构

时间:2016-06-10 19:34:41

标签: java arrays multidimensional-array data-structures

使用具有3列两种数据类型的多维数组在Java中工作 - Column1可以是任何基本数据类型,Column2和Column3是相同大小的整数。我们有数以千计的这些数组,有许多查找和比较操作,所以我们希望看看是否有更快/更小的替代类型对象的数组。我们需要维护排序顺序并希望避免散列。所有操作都使用所有3列。

总结要求:
 1.最大化迭代数据结构的速度
 2.最小化数据结构的大小
 3.维护数组内容的排序顺序
 4.避免散列(没有LinkedHashMap)

到目前为止我们考虑的结构:
 1.对象数组(当前实现)
 2.创建2个数组(每种数据类型一个),并在操作期间通过数组索引查找连接它们

有没有人对数据结构有任何其他(更好的)建议?谢谢:))

1 个答案:

答案 0 :(得分:0)

这就是我天真地实现RDBMS的方式

  • 使用字节数组数组:byte[][]和知道如何实现字节数组的外部类。
  • 字节数组中可以有标记,例如定义第一个项目的类型。即8种原始类型的标记(byteshortintlongfloatdoubleboolean,{ {1}})可以很容易地适合1个字节。
  • 您可以使用B树(也称为索引)来更快地进行查找
  • 如果项目的顺序可以是虚拟的,那么另一个索引也可以这样做

我相信你们已经知道了。但我很好奇是否有新的东西。