我有1,000,000个对象。 我需要将它们与指定范围内的4种不同属性相匹配。
一个简单的for循环可以做到,但肯定不是最有效的方法。 我应该寻求实施什么类型的收藏?我应该怎样解决这个问题。
答案 0 :(得分:2)
集合必须将所有数据加载到内存中,这对于数据集来说非常低效。您应该使用数据库 - 这就是它们的设计目标。
答案 1 :(得分:0)
NavigableSet可能适合您。您需要为每个属性定义不同的Comparator。基本上,从以一个属性排序的集开始,并获得适合该范围的子集。将子集放入由NavigableSet
排序的另一个Comparator
中,用于第二个属性...重复。
但是我不认为其中任何一个超过O(n)时间:P因为排序是O(nlogn)。至少它很有意思。