我想把一个列表分成多个列表,每个列表的最大大小为4。
我想知道如何使用lambda函数实现这个目标。
目前我正在按以下方式进行操作:
我想知道如何使用lambda函数实现这个目标。
目前我正在按以下方式进行操作:
List<List<Object>> listOfList = new ArrayList<>();
final int MAX_ROW_LENGTH = 4;
int startIndex =0;
while(startIndex <= listToSplit.size() )
{
int endIndex = ( ( startIndex+MAX_ROW_LENGTH ) < listToSplit.size() ) ? startIndex+MAX_ROW_LENGTH : listToSplit.size();
listOfList.add(new ArrayList<>(listToSplit.subList(startIndex, endIndex)));
startIndex = startIndex+MAX_ROW_LENGTH;
}
更新
似乎没有一种简单的方法可以使用lambda函数来分割列表。虽然感谢所有答案,但它们也是当lambda函数不能简化事情的绝佳例子。
Lists.partition(origList, 3);
来完成。无需使用Lambda表达式(但需要使用Guava库)。 - Carcigenicate.size()
具有常量访问权限,不是吗?我希望对它的调用非常便宜。它可能只是获取一个私有字段。 - Carcigenicate(partition size your-list)
即可。您希望lambda用于什么? - Carcigenicate