Hola, verás no sé si usar un vector de este estilo Libro[] lib o este Vector<Libro> lib, pero lo que tienes que hacer es un for q te recorra los elementos de tu vector, así:
private boolean chequearLibro(Libro libro){
for(Libro l : lib){
if(l.getIdLibro() == libro.getIdLibro){
return true;
}
return false;
}
así verificas si tienes repetidos o no, por otro lado a tu función de cargarDatos se sería más fácil crear el objeto y luego pasarlo por parámetro en la función, es decir en lugar de hacer esto;
vec.cargarDatos(numId, numIdlibro, nombre,nombAutor);
haz esto:
vec.cargarDatos(Libro libro);
es sólo una opinión, Saludos.