Duda sobre el comportamiento de objeto tipo Vector

Primero, saludos a todos los integrantes de la comunidad. Bueno, he estado trabajando con la clase Vector y tengo una duda sobre la eliminacion de elementos, supongamos, tenemos un vector tipo Vector que guarda clases tipo Persona. Añadimos 5 personas y luego eliminamos 2 personas cualquiera, la pregunta es ¿Cómo puedo hacer una función para detectar los "huecos" que me quedaron en el vector al haber eliminado?

Yo hice una función que en cada posicion del vector preguntara por null pero la verdad es que eso no me funciona porque obviamente el vector siempre tiene algo jajajaja (soy aprendiz, ténganme paciencia). Mi objetivo es que dicha funcion me de el primer "hueco" que se encuentre para meterle un nuevo objeto de tipo Persona.

No sé si me expliqué bien, si no, pues avisenme por favor, sin más que decir de antemano gracias gente.

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

Sería bueno que pusieras algo

Sería bueno que pusieras algo de código para ver como es que lo estás haciendo.

Cuando eliminas un elemento del vector, los demás elementos se recorren tomando el lugar del removido y su tamaño decrece, y quizá por eso no encuentres huecos.

A ver, para empezar estamos hablando de java.util.Vector verdad? , si es así podemos hacer la siguiente demo:

import java.util.List;
import java.util.Vector;
import static java.lang.System.out;
class Persona {
        private final String name;
        Persona( String llamada ) {
                this.name = llamada;
        }
        public String toString(){
                return name;
        }
        public static void main( String [] args ) {
                // En Java un vector es una lista:
                List<Persona> vector = new Vector<Persona>();
                vector.add( new Persona("Hugo") );
                vector.add( new Persona("Paco") );
                vector.add( new Persona("Luis") );
               
                out.println(" vector.size() == 3 ? "+ (vector.size() == 3) );// true
               
                vector.remove(1);// el segundo elemento
               
                out.println(" vector.size() == 2 ? "+ (vector.size() == 2) );// true
                //lo imprimimos
                out.println( vector );
               
                // Nos aseguramos de que no hay huecos:
                for( int i = 0 ; i < vector.size() ;i++  ){
                        out.println("vector.get( i ) == null ? " +(vector.get( i ) == null  ) ); // false siempre
                }
               
        }
}

Para que te quedaran huecos tendrías que ponerlos explicitamente:

Reemplaza en la linea 21

               
vector.remove(1);// el segundo elemento

Por esto:

vector.set( 1 , null );

Y verás el hueco.

Suerte!

Imagen de isorxp

Hola OscarRyz

Te agradezco por haber respondido :) deja decirte que me ha servido mucho tu respuesta ya que es lo que yo necesitaba, nunca se me hubiese ocurrido que en vez de poner vector.remove(i); reemplazarlo por vector.set(i, null);

Bueno, saludos y hasta la proxima !!! XD

Que bueno que te sirvió y

Que bueno que te sirvió y gracias por comentarlo.

Saludos!