[color=darkred]Pessoal, estou com problemas em um trabalho aqui.
Preciso cria um método que exclua um determinado item da fila.
O código que eu tenho é o seguinte.[/color]
[code]import javax.swing.JOptionPane;
class Filas {
private int tamanho;
private String[] fila;
private int qtde;
public Filas(int x){
tamanho = x;
fila = new String[tamanho];
qtde = -1;
}
public void push(){
if(qtde == tamanho-1){
JOptionPane.showMessageDialog(null,"Fila cheia...");
return;
}
qtde++;
fila[qtde] = JOptionPane.showInputDialog("Entre com o nome: ");
printall();
}
public void printall(){
if(qtde == -1)
JOptionPane.showMessageDialog(null,"Fila vazia...");
else{
String str = "Fila atual:\n";
String [] fila_aux = new String[tamanho]; //nao pode ser qtde+1 por causa de fila=fila_aux
//Transfere para fila auxiliar
for(int i=0;i<=qtde;i++){
str += fila[i] + "\n";
fila_aux[i]=fila[i];
fila[i]=null; //apaga conteúdo
}
fila = fila_aux;
JOptionPane.showMessageDialog(null,str);
}
}
}
class J_Exerc1 {
public static void main(String args[]) {
Filas aFila = new Filas(4);
int menu = 0;
menu = Integer.parseInt(JOptionPane.showInputDialog("Escolha a opção desejada...\n" + "1- Inserir" + "\n2- Excluir" + "\n3- Imprimir"));
switch (menu) {
case 1: aFila.push();
case 2: aFila.printall();
}
}
}[/code]
[color=darkred]Li alguns tópicos, mas sou iniciante em java, e não consegui achar um lógica plausível para me ajudar.
Se puderem eu ficaria agradecido.
Obrigado![/color]
switch (menu) {
case 1: aFila.push();
case 2: aFila.printall();
Cuidado que em Java, sempre que você terminar um case, é aconselhável você usar um break, senão vai ter alguns problemas.
Já começou a escrever o método “pop” (excluir)?
[quote=entanglement][code]
switch (menu) {
case 1: aFila.push();
case 2: aFila.printall();
[/code]
Cuidado que em Java, sempre que você terminar um case, é aconselhável você usar um break, senão vai ter alguns problemas.
Já começou a escrever o método “pop” (excluir)?
[/quote]
Isso mesmo, foi erro meu 
Apenas esqueci de colocar…
É exatamente isso que eu preciso saber como que faz, é usando o método POP que se exclui?
Em vez de “push” e “pop” eu daria os nomes de “incluir” (ou inserir) e “excluir” (ou remover) , se você está fazendo isso como um trabalho de escola.
Acho que é mais certinho usar os nomes que o professor deu às operações da fila - se ele usou “push” e “pop”, use “push” e “pop”.
Se ele usou “anhäufen” e “entstapeln” use “anhaeufen” e “entstapeln”
- sei lá se seu professor é alemão ou japonês (nesse caso, segundo o Google Translator, “積み重ね” e “スタックを解除” - sei lá se isso está certo
E ae cara estou passando o que fiz até agora resolvi o problema já está inserindo o que faltou foi colocar o comando break depois do case porque se não todos os cases acontecerão e como é uma repetição deve ser colocado um loop while para continua inserindo até lota ou vc digitar sair está assim até agora:
[code]class Filas {
private int tamanho;
private String[] fila;
private int qtde;
public Filas(int x){
tamanho = x;
fila = new String[tamanho];
qtde = -1;
}
public void push(){
if(qtde == tamanho-1){
JOptionPane.showMessageDialog(null,"Fila cheia...");
return;
}
qtde++;
fila[qtde] = JOptionPane.showInputDialog("Entre com o nome: ");
printall();
}
public void printall(){
if(qtde == -1)
JOptionPane.showMessageDialog(null,"Fila vazia...");
else{
String str = "Fila atual:\n";
String [] fila_aux = new String[tamanho]; //nao pode ser qtde+1 por causa de fila=fila_aux
//Transfere para fila auxiliar
for(int i=0;i<=qtde;i++){
str += fila[i] + "\n";
fila_aux[i]=fila[i];
fila[i]=null; //apaga conteúdo
}
fila = fila_aux;
JOptionPane.showMessageDialog(null,str);
}
}
}
public class Trabalho {
public static void main(String args[]) {
Filas aFila = new Filas(4);
boolean sair = true;
while(sair){
int menu = 0;
menu = Integer.parseInt(JOptionPane.showInputDialog("Escolha a opção desejada...\n" + "1- Inserir" + "\n2- Excluir" + "\n3- Imprimir\n4 - Sair"));
switch (menu) {
case 1: aFila.push();
break;
case 2: aFila.printall();
break;
case 4: sair = false;
break;
}
}
}
} [/code] Qualquer dúvida só me fala abraço
Cara, não duplique os seus posts: http://guj.com.br/java/283791-ajuda-com-o-metodo-excluir-de-uma-fila
Não passou nem 30 minutos e vc simplesmente criou o mesmo post novamente.
Aprenda a esperar e não poluir o tópico.
Da próxima vez espere algumas horas, caso alguém não responde poste algum comentário no seu próprio post.
Duplicar post é contra a regra do forum.
Cara, acho que eu fiz sem querer…
Não fiz por mal, dei dois cliques na tela e foi pra opção de editar.
Aí eu mandei um enviar, mas nem vi que duplicou.
Foi mal…
Bom pessoa, e quanto ao método excluir?
Alguém pode me dar uma força?
Obrigado pela ajuda nos nomes, e break 
[quote=rcarauta]E ae cara estou passando o que fiz até agora resolvi o problema já está inserindo o que faltou foi colocar o comando break depois do case porque se não todos os cases acontecerão e como é uma repetição deve ser colocado um loop while para continua inserindo até lota ou vc digitar sair está assim até agora:
[code]class Filas {
private int tamanho;
private String[] fila;
private int qtde;
public Filas(int x){
tamanho = x;
fila = new String[tamanho];
qtde = -1;
}
public void push(){
if(qtde == tamanho-1){
JOptionPane.showMessageDialog(null,"Fila cheia...");
return;
}
qtde++;
fila[qtde] = JOptionPane.showInputDialog("Entre com o nome: ");
printall();
}
public void printall(){
if(qtde == -1)
JOptionPane.showMessageDialog(null,"Fila vazia...");
else{
String str = "Fila atual:\n";
String [] fila_aux = new String[tamanho]; //nao pode ser qtde+1 por causa de fila=fila_aux
//Transfere para fila auxiliar
for(int i=0;i<=qtde;i++){
str += fila[i] + "\n";
fila_aux[i]=fila[i];
fila[i]=null; //apaga conteúdo
}
fila = fila_aux;
JOptionPane.showMessageDialog(null,str);
}
}
}
public class Trabalho {
public static void main(String args[]) {
Filas aFila = new Filas(4);
boolean sair = true;
while(sair){
int menu = 0;
menu = Integer.parseInt(JOptionPane.showInputDialog("Escolha a opção desejada...\n" + "1- Inserir" + "\n2- Excluir" + "\n3- Imprimir\n4 - Sair"));
switch (menu) {
case 1: aFila.push();
break;
case 2: aFila.printall();
break;
case 4: sair = false;
break;
}
}
}
} [/code] Qualquer dúvida só me fala abraço[/quote]
Opa, agora sim 
E quanto ao método excluir?
Pode me dar uma dica?
Obrigado
É o contrário do método push, não?
Se alguma coisa vai ser incrementada no push, ela deve ser decrementada no pop 
Fiz essa solução aqui pode haver soluções melhores, mas essa funciona legal da uma olhada ai. Ta imprimindo, saindo, inserindo, e excluindo. Ele nesse código ta excluindo sempre o ultimo item da uma olhada.
[code]import javax.swing.JOptionPane;
class Filas {
private int tamanho;
private String[] fila;
private int qtde;
public Filas(int x) {
tamanho = x;
fila = new String[tamanho];
qtde = -1;
}
public void push() {
if (qtde == tamanho - 1) {
JOptionPane.showMessageDialog(null, "Fila cheia...");
return;
}
qtde++;
fila[qtde] = JOptionPane.showInputDialog("Entre com o nome: ");
printall();
}
public void pop() {
for (int i = 0; i < fila.length; i++) {
if(qtde == i){
fila[i] = "n";
qtde--;
}
}
printall();
}
public void printall() {
if (qtde == -1)
JOptionPane.showMessageDialog(null, "Fila vazia...");
else {
String str = "Fila atual:\n";
String[] fila_aux = new String[tamanho]; // nao pode ser qtde+1 por
// causa de
// fila=fila_aux
// Transfere para fila auxiliar
for (int i = 0; i <= qtde; i++) {
if (fila[i] != "n") {
str += fila[i] + "\n";
fila_aux[i] = fila[i];
fila[i] = null;
}// apaga conteúdo
}
fila = fila_aux;
JOptionPane.showMessageDialog(null, str);
}
}
}
public class Trabalho {
public static void main(String args[]) {
Filas aFila = new Filas(4);
boolean sair = true;
while (sair) {
int menu = 0;
menu = Integer.parseInt(JOptionPane
.showInputDialog("Escolha a opção desejada...\n"
+ "1- Inserir" + "\n2- Excluir"
+ "\n3- Imprimir\n4 - Sair"));
switch (menu) {
case 1:
aFila.push();
break;
case 2:
aFila.pop();
break;
case 3:
aFila.printall();
break;
case 4:
sair = false;
break;
}
}
}
}[/code]
[quote=rcarauta]Fiz essa solução aqui pode haver soluções melhores, mas essa funciona legal da uma olhada ai. Ta imprimindo, saindo, inserindo, e excluindo. Ele nesse código ta excluindo sempre o ultimo item da uma olhada.
[code]import javax.swing.JOptionPane;
class Filas {
private int tamanho;
private String[] fila;
private int qtde;
public Filas(int x) {
tamanho = x;
fila = new String[tamanho];
qtde = -1;
}
public void push() {
if (qtde == tamanho - 1) {
JOptionPane.showMessageDialog(null, "Fila cheia...");
return;
}
qtde++;
fila[qtde] = JOptionPane.showInputDialog("Entre com o nome: ");
printall();
}
public void pop() {
for (int i = 0; i < fila.length; i++) {
if(qtde == i){
fila[i] = "n";
qtde--;
}
}
printall();
}
public void printall() {
if (qtde == -1)
JOptionPane.showMessageDialog(null, "Fila vazia...");
else {
String str = "Fila atual:\n";
String[] fila_aux = new String[tamanho]; // nao pode ser qtde+1 por
// causa de
// fila=fila_aux
// Transfere para fila auxiliar
for (int i = 0; i <= qtde; i++) {
if (fila[i] != "n") {
str += fila[i] + "\n";
fila_aux[i] = fila[i];
fila[i] = null;
}// apaga conteúdo
}
fila = fila_aux;
JOptionPane.showMessageDialog(null, str);
}
}
}
public class Trabalho {
public static void main(String args[]) {
Filas aFila = new Filas(4);
boolean sair = true;
while (sair) {
int menu = 0;
menu = Integer.parseInt(JOptionPane
.showInputDialog("Escolha a opção desejada...\n"
+ "1- Inserir" + "\n2- Excluir"
+ "\n3- Imprimir\n4 - Sair"));
switch (menu) {
case 1:
aFila.push();
break;
case 2:
aFila.pop();
break;
case 3:
aFila.printall();
break;
case 4:
sair = false;
break;
}
}
}
}[/code][/quote]
Muito bom cara!
Era isso mesmo que eu queria saber, principalmente a parte comentada!
Continuarei postando dúvidas aqui, e, espero que me continuem me ajudando HAHA
Obrigado pessoal!