2017-02-10 16 views
-1

私は2015年のバンクーバー財産税報告書のデータを読み込んで可視化するプログラムをjavafxに書いています。これはcsv形式です。一定の間隔でアイテムの数をカウントするにはどうすればよいですか?

$ 25,000ずつ増分する間隔内のプロパティの数を数えたいと思います。たとえば、最小値は100,000ドル、そこからは25,000ドル増加します。データセット全体の最大プロパティ値は約10億ドルです。私はそれが完了するまでに時間がかかると信じていたので、スイッチとifを排除しました。

これには、これよりも短い方法がありますか?私はJava 8を使用しています。

+0

することは、このことによって開始http://stackoverflow.com/help/how-to-ask –

+1

あなたの質問は非常に明確ではないが、あなたが必要なのは地図です<整数、整数>で、キーは区間の下限(100,000,125,000,1500,000など)で、値はその区間のカウントです。プロパティごとに、その値のモジュロを削除して(つまり、157,000とします)、25,000で除算します(したがって、下限は150,000になります)。 –

+0

@JBNizet応答ありがとう?不明な点を教えていただけますか?私はこのミスを将来避けたいと思っています。現在の土地価値の列には、約200,000行のデータがあります。私は一定の間隔でプロパティの数を数えたかった。私はifとswitchを使うのは時間がかかると思ったので、これらの間隔でより効率的な検索方法があるかどうかを知りたいと思っていました。 –

答えて

1

各家の数を保持する配列を作成することができます。

例えば、配列使用:

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 
    } 
} 
関連する問題