2010-10-22 4 views
0

J'ai une liste d'objets, le nombre d'objets est aléatoire.Quel est le moyen efficace de regrouper ces objets liste?

Je voudrais demander au code efficace de grouper les objets de la façon dont chaque groupe a 4 objets (le dernier groupe a moins de/égal à 4 objets). Je dois d'abord connaître le nombre de groupes, puis pour chaque groupe, je vais parcourir les objets.

+7

Vous avez vraiment besoin de revenir à vos anciennes questions et d'accepter certaines des réponses. – msandiford

Répondre

1
List<E> list = ...; 

int groupSize = 4; 
int groupCount = (int) Math.ceil(list.size()/(float) groupSize); 

for (int i = 0; i < groupCount; i++) { 
    // Most List implementations have an effecient subList implementation 
    List<E> group = list.subList(
      i * groupSize, // "from" index (inclusive) 
      Math.min((i + 1) * groupSize, list.size()), // "to" index (exclusive) 
     ); 

    for (E element : group) { 
     // ... 
    } 
} 
Questions connexes