我想获得具有最多页面大小元素的列表l的子列表,我这样做到现在为止:
l.subList(first, (l.size() > first + pagesize) ? pagesize : l.size())
Apache commons 中是否有一个方便的方法来使我的代码更具可读性?
我想获得具有最多页面大小元素的列表l的子列表,我这样做到现在为止:
l.subList(first, (l.size() > first + pagesize) ? pagesize : l.size())
Apache commons 中是否有一个方便的方法来使我的代码更具可读性?
从 Java 8 开始,您可以使用流来完成
list.stream()
.skip(first)
.limit(pagesize)
.collect(Collectors.toList());
如果可能的话,我什至会跳过collect()
部分并直接使用流。不确定整体解决方案的效率,但我发现它更具可读性。
为此,您不需要 Apache Commons。它可以这样实现:
l.subList(first, Math.min(l.size(), first + pagesize));
更进一步,您可以Math.min
静态导入并减少一些混乱:
import static java.lang.Math.min;
...
l.subList(first, min(l.size(), first + pagesize));