我正在寻找一种高性能的数据结构,它的行为类似于一个集合,其中的元素将始终是一个整数数组。数据结构只需要实现这个接口:
trait SetX {
def size:Int
def add(element:Array[Int])
def toArray:Array[Array[Int]]
}
该集合不应包含重复项,这可以使用 Arrays.equals(int[] a, int[] a2) 来实现 - 即数组的值不能相同。
在创建它之前,我对将有多少元素有一个粗略的想法,但需要调整大小行为以防万一超出最初的想法。元素的长度总是相同的,我知道在创建时是什么。
当然,我可以使用 Java HashSet(当然是包装数组),但这是在紧密循环中使用的,而且速度太慢。我看过 Trove 并且效果很好(通过使用数组但提供 TObjectHashingStrategy)但我希望由于我的要求非常具体,因此可能有一种更快/更有效的方法来做到这一点。
有没有人遇到过这个或知道我如何能做到这一点?
上面的特征是 Scala,但我对 Java 库或代码非常满意。
我真的应该说我在做什么。我基本上是在一个紧密的循环中生成大量 int 数组,最后我只想看到唯一的数组。我永远不必从集合或其他任何东西中删除元素。只需将大量 int 数组添加到集合中,最后取出唯一的数组。