在使用C#或Java等语言时,我正在考虑如何显示分页控件.
如果我想要以每页y块的形式显示x项,那么需要多少页?
是否存在以class这种方式舍入的Java函数或util :func(3/2) = 2
Math.ceil()没有帮助,按名称应该这样做.我知道BigDecimal,但不需要它.
给定一个java.util.List与n元素和所需的页面大小m,我想将它转换为包含地图n/m+n%m的元素.每个地图元素都应包含m元素.
这是一个整数的例子:
List<Integer> list = Arrays.asList(1, 2, 3, 4, 5, 6, 7, 8, 9, 10);
// What is the equivalent Java 8 code to create the map below from my list?
Map<Integer, List<Integer>> map = new HashMap<>();
map.put(0, Arrays.asList(1,2,3));
map.put(1, Arrays.asList(4,5,6));
map.put(2, Arrays.asList(7,8,9));
map.put(3, Arrays.asList(10));
Run Code Online (Sandbox Code Playgroud)
这是可能的,使用Java 8?
是否有任何ceil对应物Math.floorDiv()
如何用我们拥有的最快方式计算它?
UPDATE
代码floorDiv()如下:
public static long floorDiv(long x, long y) {
long r = x / y;
// if the signs are different and modulo not zero, round down
if ((x ^ y) < 0 && (r * y != x)) {
r--;
}
return r;
}
Run Code Online (Sandbox Code Playgroud)
我们可以ceil用类似的方式编码吗?
更新2
我看到了这个答案/sf/answers/521271971/但似乎有太多不必要的操作.
我知道我可以使用Math.java函数来获取double或float的floor,ceil或round值,但我的问题是 - 如果小数点出现在我的值中,是否可以始终获得更高的整数值
例如
int chunkSize = 91 / 8 ;
Run Code Online (Sandbox Code Playgroud)
这将等于11.375
如果我将地板,天花板或圆形应用于此数字,它将返回11我想要12.
简单如果我有11.xxx我需要12,如果我有50.xxx我想要51
抱歉,chunkSize应为int
我怎样才能做到这一点?