Hola.
Me gusta tu solución, pero yo lo he implementado de otra manera:
Clase Paquete
public class Paquete {
private int idPaquete;
private int pesoPaquete;
//Constructor
public Paquete(int idPaquete, int pesoPaquete){
this.idPaquete=idPaquete;
this.pesoPaquete=pesoPaquete;
}
//Métodos
public void setId(int id){idPaquete=id;}
public void setPeso(int peso){pesoPaquete=peso;}
public int getId(){return idPaquete;}
public int getPeso(){return pesoPaquete;}
@Override
public String toString(){
return "Paquete-> ID: "+idPaquete+", Peso: "+pesoPaquete+" kg";
}
}
Clase Principal
package cu00922c.ejercicio.vector;
import java.util.List;
import java.util.Random;
import java.util.Vector;
public class CU00922CEjercicio {
public static void main(String[] args) {
Vector<Paquete> contenedor = new Vector<>(5,1);//Creamos un vector de paquetes llamado contenedor
int cargaMaximaContenedor;
int carga;
carga = cargarContenedor(contenedor,50);//Cargamos el contenedor con 50 paquetes
cargaMaximaContenedor=contenedor.capacity()*100;
System.out.println("Un contenedor con "+contenedor.capacity()+" paquetes podría cargar "
+contenedor.capacity()*100+" kilos y tenemos "+contenedor.capacity()
+ " paquetes con un peso total de: "+ carga+" kilos");
//Aumentar la capacidad para poder contener la carga de los paquetes que tiene
if (carga>cargaMaximaContenedor){ aumentarCapacidad(contenedor,carga); }
else{System.out.println("No ha sido necesario aumentar la capacidad");}
}
//Cargar contenedor. Devuelve la carga del contenedor
private static int cargarContenedor(Vector<Paquete> contenedor, int paquetes){
int carga=0;
Random rnd = new Random();
for (int i=1;i<=paquetes;i++){
int peso=rnd.nextInt(70)+81;
contenedor.add(i-1, new Paquete(i,peso));
carga=carga+peso;
}
return carga;
}
//Aumenta la capacidad del contenedor
private static void aumentarCapacidad(Vector<Paquete> contenedor, int carga){
int resultado=carga/100;
if (carga%100>0){resultado++;}
contenedor.ensureCapacity(resultado);
System.out.println("Se ha aumentado la capacidad a "+contenedor.capacity()
+" paquetes, lo que permite cargar hasta "+contenedor.capacity()*100+" kilos");
}
}