Hablo con una API que me da un java.util.Iterator
sobre una colección. Eso significa que puedo iterar sobre él, pero no puedo obtener acceso directo/aleatorio a los elementos.Obtiene un elemento aleatorio de una colección secuencial
Ahora a mi problema: quiero obtener un elemento aleatorio de esta colección. ¿Cómo puedo hacer eso? Supongo que podría crear una nueva colección que permita el acceso directo, pero ¿no consume poca memoria? También podría iterar sobre toda la colección y para cada elemento "tirar un dado" para ver si debería tomar ese elemento y salir de la iteración o continuar. Pero luego necesito el tamaño de la colección y no puedo obtener eso del iterador.
Gracias de antemano.
La colección normalmente no debería ser la clase que implementa 'Iterator'. – thejh
¿Su colección es 'java.util.Collection'? – thejh
El consumo de memoria no debe ser tan grande. La nueva colección simplemente contiene punteros a los datos reales, por lo que el tamaño del nuevo objeto de colección! = El tamaño de la colección. –