如何计算特定时间间隔内的物品数量?

问题描述:

我正在用javafx编写一个程序,用于读取2015年温哥华房产税报告中的数据并将其可视化。它采用csv格式。如何计算特定时间间隔内的物品数量?

我想算性质的间隔时间内,通过$ 25,000个定数。例如,最低价值为10万美元,从那里增加25000美元。整个数据集的最大财产价值约为10亿美元。我排除了开关和ifs,因为我认为这需要很长时间才能完成。

有没有在Java中较短的方法可以做到这一点?我使用Java 8

+0

开始通过这个http://*.com/help/how-to-ask – 2017-02-10 18:16:14

+1

你的问题还不是很清楚,但所有你需要的是一个Map ,其中键是间隔的下限(100,000,125,000,150,000等),并且该值是该间隔的计数。对于每个属性,删除它的模值(假设157,000)除以25,000(从而导致下限150,000),并增加相应的计数。 –

+0

@JBNizet感谢您的回复?你能告诉我什么不清楚吗?我想在将来避免这个错误。在当前的土地价值栏中,大约有20万行数据。我想在一定的时间间隔内计算属性的数量。我认为使用ifs和switch会很耗时,所以我想知道是否有更有效的方式搜索这些间隔。 –

您可以创建一个数组(或者更好的是,一个地图),它保存每个房子的计数。

例如,使用一个数组:

int[] houseArray = new int[1+((max_house_value-100000)/25000)]; 
for (int price : houses_price_array){ 
    if (price < 100000){ 
    houseArray[0] += 1; 
    } else { 
    houseArray[((price-100000)/25000)+1] += 1;//int rounds down, need +1 
    } 
}