たまに使うのでメモ。
全体の件数 / ページあたりの件数 を、小数点以下切り上げで、ページの総数が得られます。
やり方自体は色々ありますが、上のをそのまま実装するとこんな感じです。
int totalSize = 30;
double pageSize = 10.0;
int totalPage = (int) Math.ceil(totalSize / pageSize);
System.out.println(totalPage);
>> 3
int totalSize = 35;
double pageSize = 10.0;
int totalPage = (int) Math.ceil(totalSize / pageSize);
System.out.println(totalPage);
>> 4
int totalSize = 40;
double pageSize = 10.0;
int totalPage = (int) Math.ceil(totalSize / pageSize);
System.out.println(totalPage);
>> 4
int totalSize = 41;
double pageSize = 10.0;
int totalPage = (int) Math.ceil(totalSize / pageSize);
System.out.println(totalPage);
>> 5
Math#ceil
が切り上げなのですが、割ったときに少数点がでるように、ページあたりの件数をdoubleで定義します。
返り値がdoubleですが、小数点以下はいらないので、intにキャストにします。
primitive型だと、non-nullが担保されますが、「Doubleの整数部分だけ取り出す」みたいなことはオブジェクトになっていないと、やや不自然になる印象。