Estrutura de dados FILAS

aew pessoal eu quero fazer o seguinte fiz um programinha simples…
para adicionar inteiros em uma fila, remover, e exibir…

bom to com duvidaas de como modificar meu RemoveFila para ele remova o Inteiro que eu quizer… e nao por ordem da fila…

package quest3;

/**
 *
 * @author pepis
 */
public class Quest3 {
    private int [] v;
    private int primeiro;
    private int ultimo;
    
    // ---------------------------- construtor
    
    public Quest3(int numElementos) {
        v = new int[numElementos];
        primeiro = 0;
        ultimo = -1;
    }
    
    
    // ---------------------------- insereFila
    
    public void insereFila(int elemento) {
        int m = v.length;
        
        if (ultimo < m-1) {
           ultimo++;
           v[ultimo] = elemento;
        } else {
            System.out.println("Status: Fila Cheia");
        }
    }
    
    // ---------------------------- removeFila
    
    public int removeFila() {
        int elemento;
        
        if (ultimo != -1) {
            elemento = v[primeiro];
            primeiro++;
            if (primeiro > ultimo) {
                primeiro = 0;
                ultimo = -1;
            }
            return(elemento);
        } else {
            System.out.println("Status: Fila Vazia");
            return(-1);
        }
    }

    // ---------------------------- consultaFila
    
    public int consultaFila() {
        int elemento;
        
        if (ultimo != -1) {
            elemento = v[primeiro];
            return(elemento);
        } else {
            System.out.println("Status: Fila Vazia");
            return(-1);
        }
    }

    // ---------------------------- exibeFila
    
    public void exibeFila() {
        System.out.print("Fila: ");
        for (int i = primeiro;i <= ultimo;i++) {
            System.out.print(v[i] + " ");
        }
        if (ultimo == -1) {
            System.out.print("Vazia");
        }
        System.out.println();
    }
}
package quest3;

import javax.swing.JOptionPane;

/**
 *
 * @author pepis
 */
public class Quest3_1 {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) {
     
        int num, num_fila, opt, num_remove;
        
        
           num = Integer.parseInt(JOptionPane.showInputDialog("num"));
            
        
          Quest3 f1 = new Quest3(num);
        
        do{
            
             opt = Integer.parseInt(JOptionPane.showInputDialog("Opt: " +
                    "\n 1. Inserir" +
                    "\n 2. Remover" +
                    "\n 3. Exibir" +
                    "\n 4. finalizar"));


           switch (opt) {
               
              
               case 1:
            num_fila = Integer.parseInt(JOptionPane.showInputDialog("num a add"));
            f1.insereFila(num_fila);
            f1.exibeFila();
           
            if(num_fila == 0){
                
                break;
            }
                   break;
                   
               case 2:
                   
                   num_remove = Integer.parseInt(JOptionPane.showInputDialog("num a remover"));
                   f1.removeFila();
                  
                   
                   break;
                   
               case 3:
                   f1.exibeFila();
                 
                   break;
                    
                   
                   
            
            
                   
           }
            
        }while(true);
        
       
        
        
    }
}

ué, se você puder remover o elemento que você quiser, deixa de ser uma fila, nesse caso você deve pensar numa estrutura de lista.

seria asim por exemplo

fila 10, 20, 30, 40

numero a remover: 20

final após a remoção: 10, 30, 40

[quote=junior_pepis]seria asim por exemplo

fila 10, 20, 30, 40

numero a remover: 20

final após a remoção: 10, 30, 40
[/quote]

Isso não existe… Isso não é fila…
Você pode remover o 20, mas ai precisa tirar o 10 também… Porém se você colocar o 10 de volta na fila ele vai para o final. (Isso não faria muito sentido).

Fila só pode retirar-se do inicio e entrar no final.

[quote=junior_pepis]seria asim por exemplo

fila 10, 20, 30, 40

numero a remover: 20

final após a remoção: 10, 30, 40
[/quote]
Então isso seria uma lista ordenada, não uma fila.
Uma fila se caracteriza exatamente por ter o comportamento de só poder remover o primeiro (ou o último, no caso de uma pilha) elemento a entrar, senão deixa de ser uma fila.