Estrutura de Dados

Alguem poderia me ajudar a passar esse código de Lista para Fila?

import java.util.Scanner;

public class Trabalho {

//************ Para testar retorno
public static void retorno() {
System.out.println("Pressione para voltar para o menu");
Scanner leia = new Scanner(System.in);
leia.nextLine();
}



//************ Desenha uma linha de tamanho x
public static void linha(int x) {
for (int i=1; i<=x; i++) {
System.out.print("-");
}
System.out.println();
}
//********************************************



//************ Desenha o título da tela
public static void titulo(String msg) {
linha(40);
System.out.println(msg);
linha(40);
}
//********************************************




//************ Desenha a tela de menu
public static void menu() {
titulo(" PROGRAMA PRINCIPAL");
System.out.println("Opção 1: Inserir");
System.out.println("Opção 2: Remover");
System.out.println("Opção 3: Imprimir");
System.out.println("Opção 4: Sair");
System.out.print("Escolha a opção: ");
}
//********************************************



//************ Método para inserir na lista
public static void inserir(Lista lista) {
titulo(" INSERIR DADOS");
Scanner leia = new Scanner(System.in);

System.out.println("Digite o valor a ser inserido na lista: ");
int valor = leia.nextInt();
System.out.println("Digite a posição onde deseja inserir o valor: ");
int posicao = leia.nextInt();


if (!lista.estaCheia()) {

if (lista.inserir(valor, posicao))
System.out.println("[Elemento inserido com sucesso]");
else
System.out.println("[Posição invalida]");

}else {
System.out.println("[Impossível inserir: Lista Cheia]");
}


System.out.println(lista.imprimir());

retorno();

}
//********************************************



//************ Método para remover da lista
public static void remover(Lista lista) {
titulo(" REMOVER DADOS");

Scanner leia = new Scanner(System.in);
System.out.println("Digite a posição do valor a ser retirado");
int posicao = leia.nextInt();

if(!lista.estaVazia()) {

if (lista.remover(posicao))
System.out.println("[Elemento removido com sucesso]");
else
System.out.println("[Posição inválida]");


}else {
System.out.println("[Impossível remover: Lista Vazia]");
}


System.out.println(lista.imprimir());

retorno();

}
//********************************************



//************ Método para imprimir lista
public static void imprimir(Lista lista) {
titulo(" IMPRIMIR DADOS");

System.out.println(lista.imprimir());

retorno();

}
//********************************************




public static void main(String[] args) {
Scanner leia = new Scanner(System.in);

//Inicializar a lista com dados aleatórios
Lista l1 = new Lista(20);
l1.inserir(10);
l1.inserir(11);
l1.inserir(12);
l1.inserir(13);


int opcao = 0;
while(opcao != 4) {

//Mostrar o menu e pedir para o usuário escolher uma opçao
menu();
opcao = leia.nextInt();

//Descobrir qual opçao o usuário escolheu e chamar o método certo
switch(opcao) {
case 1:
inserir(l1);
break;
case 2:
remover(l1);
break;
case 3:
imprimir(l1);
break;
}

}

System.out.println("Bye bye!!!!");

}
}

Qual a sua dúvida?

E na parte de remover que eu nao sei como remove da fila