D'obtenir la taille d'un objet iterable en Java

J'ai besoin de comprendre le nombre d'éléments dans un Iterable en Java.
Je sais que je peux le faire:

Iterable values = ...
it = values.iterator();
while (it.hasNext()) {
  it.next();
  sum++;
}

Je pourrais aussi faire quelque chose comme ça, parce que je n'ai pas besoin des objets dans l'Itérable plus loin:

it = values.iterator();
while (it.hasNext()) {
  it.remove();
  sum++;
}

Petite échelle de référence n'a pas beaucoup de différence de performances, des commentaires ou d'autres idées pour ce problème?

  • Pourquoi? Soit est une très mauvaise idée, car les deux sont de O(N). Vous devriez essayer d'éviter d'avoir à effectuer une itération de la collecte à deux reprises.
  • Votre deuxième il ne faut même pas le travail. Vous ne pouvez pas appeler remove() sans appel next() à l'avance.
InformationsquelleAutor js84 | 2012-07-22