public static void main(String[] args) {
System.out.println(getData(1));
System.out.println(getData(2));
System.out.println(getData(3));
}
public static List getData(int page){
Map<String, List<Object>> map = new HashMap<String, List<Object>>();
List list = new ArrayList<Object>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
list.add(5);
list.add(6);
list.add(7);
list.add(8);
list.add(9);
list.add(10);
list.add(11);
list.add(12);
list.add(13);
map.put("b", list);
list = new ArrayList<Object>();
list.add(21);
list.add(22);
list.add(23);
list.add(24);
map.put("a", list);
int total = 0;
int pageSize=10;
for(List l:map.values()){
if((total+Math.ceil((float)l.size()/pageSize))>=page){
int end =(page-total)*pageSize;
if(end>l.size())end=l.size();
int from = (page-total-1)*pageSize;
if(from<0)from=0;
return l.subList(from, end);
}
total+= Math.ceil((float)l.size()/pageSize);
}
return null;
}