E de hacer un programa que haga de cola  y tenga varios metodos, e conseguido hacerlo para introducir datos tipo int, pero no se como hacerlo para cadenas, este es mi codigo, si alguien me pudiera decir que tengo que modificar o algo estaria muy agradecido
 
Clase cola 
Código:
 public class Cua <E> {
    private final int Max = 100;
    private int[] V;
    private int inici;
    private int fi;
    public Cua(int tamanio) {
        this.V = new int[Max + 1];
        this.inici = 0;
        this.fi = 0;
    }
    public void ficarEnCua(int a) {
        fi = (fi + 1) % Max;
        V[fi] = a;
    }
    
    public boolean cuaEsBuida() {
        return inici == fi;
    }
    
    public int treureDeCua() {
        int a = Integer.MIN_VALUE;
        inici = (inici + 1) % Max;
        a = V[inici];
    	return a;
    }
    
    public void capDeLaCua() {
        System.out.println("El primer element de la cua es: "+V[inici+1]);
        }
}
  Clase main 
Código:
 public class testCua {
	
   public static void main(String [] args) {
    	Cua<Integer> p1=new Cua<Integer>(5);
    	System.out.println("Cua buida: "+p1.cuaEsBuida());
		p1.ficarEnCua(4);
		p1.ficarEnCua(5);
    	p1.capDeLaCua();
		p1.ficarEnCua(6);
		p1.ficarEnCua(7);
    	System.out.println("Cua buida: "+p1.cuaEsBuida());
		p1.ficarEnCua(2);
    	p1.capDeLaCua();
    	p1.treureDeCua();
    	p1.treureDeCua();
    	p1.treureDeCua();
    	p1.treureDeCua();
    	p1.treureDeCua();
    	System.out.println("Cua buida: "+p1.cuaEsBuida());
    	p1.ficarEnCua(9);
    	p1.ficarEnCua(6);
    	p1.capDeLaCua();
    }
}