Tengo una colección de objetos (algunos clase de contacto en mi caso) y necesito devolver una página de esa colección. Mi código parece mucho más largo de lo necesario. ¿Me faltan algunas bibliotecas que podrían realizar eso de forma más elegante que iterar sobre cada elemento uno a la vez como hago abajo?Cómo devolver N elementos consecutivos de una Colección?
protected Collection<Contact> getPageOfContacts(
Collection<Contact> contacts, int pageIndex, int pageSize) {
if (pageIndex < 0 || pageSize <= 0
|| pageSize > contacts.size()) {
return contacts;
}
int firstElement = pageIndex * pageSize;
int lastElement = (pageIndex + 1) * pageSize - 1;
Collection<Contact> pagedContacts = new ArrayList<Contact>();
int index = -1;
for (Contact contact : contacts) {
index++;
if (index < firstElement) {
continue;
}
if (index > lastElement) {
break;
}
pagedContacts.add(contact);
}
return pagedContacts;
}
¿Cómo se consume la colección? ¿Qué métodos está usando/plan para usar en él? – Carl