我有一个pojos列表。将此pojos列表转换为List列表,其中每个子列表的大小为10或更小。因此,例如,将大小为13的List转换为两个元素List。第一个元素是10个项目的列表,第二个元素是列表3个项目。
所以数据结构是List<List<pojo>>
创建此列表列表:
List<List<pojo>> pojoList
counter = 0;
initialise new tempList
iterate list
add current pojo to temp list
if counter = 10 then add tempList to pojoList
reset counter and tempList and continue until list is iterated
有替代解决方案吗?
答案 0 :(得分:4)
考虑Guava的Lists.partition()。
答案 1 :(得分:1)
使用sublist
List<Pojo> originalList.... //your list of POJOs
List<List<Pojo>> pojoList = new ArrayList<List<Pojo>>(originalList/10 + 1);
for(int i = 0; i < originalList.size(); i+=10){
if(i + 10 > originalList.size()){
pojoList.add(originalList.subList(i, originalList.size()));
}
else{
pojoList.add(originalList.subList(i, i + 10));
}
}
答案 2 :(得分:0)
您可以使用subList
。
您仍然需要进行迭代,但您不需要创建tempList