No meu tava dando erro de exceção na classe EstruturaEstatica no método adiciona(int posição, T elemento), pq tinha um if que impedia a adição de elementos caso a posição this.tamanho (a mensagem do erro era: não existem elementos nessa posição). Tive que comentar essa parte do código pra que o que vc ensinou nessa aula pudesse funcionar.
oi, vc tem razão. Essa parte eu gravei mas por algum motivo não entrou na aula. O que fiz foi trocar a comparação (ainda tem o mesmo efeito) por essa aqui: if (posicao < 0 || posicao > tamanho){
@@loianegronerOlá! Meu código também apresentou o mesmo erro de exceção comentado acima. Verifiquei seu código no GitHub e também os comentários aqui alterando o IF classe EstruturaEstatica, no método adiciona(int posição, T elemento), para "if(posição this.tamanho)". No entanto mesmo assim não funcionou. Solução então foi comentar na classe EstruturaEstatica, no método adiciona(int posição, T elemento), o trecho do código do IF que levanta essa exceção de "IllegalArgumentException("Posição inválida!")".
Teria como fazer por gentileza um vídeo, de um Sistema em java . Projeto abaixo: ================================================================ Desenvolver um sistema de controle de filas de um banco fictício utilizando a linguagem Java. Considere que neste banco há apenas uma agência e, esta agência, possui 4 caixas de atendimento. Os atendimentos a clientes podem ser divididos em 3 categorias: - Preferencial: para pessoas que possuem atendimento prioritário assegurado por lei; - Rápido: para pessoas que farão até 3 operações no caixa; - Comum: para os demais atendimentos. Com 3 etapas: 1. Construção da interface, (GUI) do NetBeans de acordo com o modelo abaixo. Usando a biblioteca Swing do java. --------------------------------------------------------------------------------------------------------- Painel usuário: Para clientes- retirar senha (com um click) botão botão botão senha -comum senha - rápida senha- Prioritária ======================================================= Painel - - (caixas) Chamar senhas botão botão botão botão caixa - 01 caixa - 02 caixa- 03 caixa- 04 ================================================-====== sua senha é: (xx- xxx) a senha aparecerá aqui -------------------------------------------------------------------------------------------------------------- 2. Criação da fila de atendimento. Semelhante às máquinas de geração de senhas, há três botões para os clientes: Preferencial, Rápido e Comum. O cliente aperta o botão de acordo com o seu atendimento, sua senha é gerada e colocada em uma fila. A senha deve ter a letra do tipo do atendimento (P, R ou C), seguida de um número seqüencial. A seqüência é a mesma para os diferentes tipos. Por exemplo, se chegarem 4 clientes, 1 sendo preferencial, 2 comuns e 1 atendimento rápido, nesta ordem, a fila será. P-1, C-2, C-3, R-4. Haverá uma única fila que será implementada com ArrayList, contendo todas as senhas geradas, que serão objetos da classe Senha, que você irá criar. A classe senha precisa apenas de dois atributos: o tipo e o número. 3. Realização dos atendimentos. Haverá 4 caixas para atendimentos, que atenderão da seguinte forma: - Caixa 1: realiza os atendimentos preferenciais. Se não houver atendimentos preferenciais na fila, atende o próximo (rápido ou comum). - Caixas 2 e 3: atendem primeiro as senhas de atendimento rápido. Se não houver atendimento rápido, atendem o próximo da fila (prioritário ou comum). - Caixa 4: realiza os atendimentos comum. Se não houver atendimentos comuns na fila, atende o próximo (rápido ou prioritário). Cada caixa, tem o seu botão. Ao clicar no seu respectivo botão, este, deverá buscar a próxima senha a ser atendida. Na sequência, deverá exibir no painel a senha e o caixa. Por fim, o caixa deverá retirar a senha da fila. Se não houver nenhuma senha na fila, não faz nada. =========================================================== Obrigado, pela atenção!
Oi. Loiane. Depois de assistir e digitar todo o código exposto, apresentar-se o erro abaixo. Exception in thread "main" java.lang.NullPointerException at java.lang.Integer.compareTo(Unknown Source) at java.lang.Integer.compareTo(Unknown Source) at com.loiane.estruturadados.fila.FilaComPrioridade.enfileira(FilaComPrioridade.java:11) at com.loiane.estruturadados.fila.teste.Aula24.main(Aula24.java:11) Versão do Eclipse instalada Eclipse INDIGO - Version: 3.7.0
Boa tarde Loiane, em primeiro lugar obrigado pelo ótimo curso. Segue uma dúvida: na resolução do meu exercício percebi que ao inserir mais de 9 objetos na fila de pacientes o método compareTo é acionado, mas não organiza a fila por prioridade. A organização da prioridade ocorre no momento da remoção do objeto da fila. Eu utilizei a Interface Queue com a classe PriorityQueue. Testei várias vezes debugando. Ao finalizar a adição dos objetos na fila ela ficava parcialmente desordenada, mas ao remover, todas as prioridades ficavam corretas. Esse comportamento está correto?
Loiane esta parte ficou complicado para eu entender. o que esse Comparableta fazendo com elemento ? e esse if n intendi o que ele foi fazer la em paciente protected void enfileira(T elemento) { Comparable chave = (Comparable) elemento; int i; for(i=0; i o.getPrioridade()) { return 1; }else if(this.prioridade < o.getPrioridade()) { return -1; } return 0; }
Ola Loiane! Estou a tentar baixar o codigo fonte desta aula mas nao vejo o link para tal, é que estou a tentarr copiar e executar o codigo vendo as aulas mas esta a aparecer algguns bugs, sera me podes enviar? Ja tentei entrar neste link loiane.training mas a opção de baixar não esta linkar, tambem ja me increvi e mesm assim nada. preciso tanto apreder lista com prieoridade e as tuas aulas são bem claras mas para eu eliminar a minha duvida so terei que ter o codigo fonte para comparar com o que copiei vendo as aulas.
Oi professora, tive que criar um outro método chamado adicionaFila( ); pq o primeiro não estava funcionando tava dando erro de exceção: Posição Invalida ! aí fiz mais um sem o if pra conseguir terminar a aula ! protected boolean adicionaFila(int posicao, T elemento) { this.aumentaCapacidade(); for(int i = this.tamanho-1; i>=posicao; i--){ this.elementos[i+1] = this.elementos[i]; } this.elementos[posicao] = elemento; this.tamanho++; return false; }
enfrentei o mesmo erro mas acabei aplicando a solução diferente coloquei um if else após o bloco do for :: if (i == this.tamanho) { super.adiciona(elemento); // Se a fila estiver vazia ou o elemento for o maior, adiciona no final } else { super.adiciona(i, elemento); // Caso contrário, adiciona na posição correta }
[ATENÇÃO] Olá! Meu código também apresentou uma exceção. Verifiquei o código da Loiane no GitHub e fiz a alteração do IF na classe EstruturaEstatica, no método adiciona(int posição, T elemento), para "if(posição this.tamanho)". No entanto mesmo assim não funcionou. [SOLUÇÃO] Comentei na classe EstruturaEstatica, no método adiciona(int posição, T elemento), o trecho do código do IF que levanta essa exceção de "IllegalArgumentException("Posição inválida!")". Passou a funcionar.
Gente, saiu a versão do livro de estrutura de dados da Loiane em português Editora Novatec recomendo a todos.
Ótima didática
Maravilha de aula
No meu tava dando erro de exceção na classe EstruturaEstatica no método adiciona(int posição, T elemento), pq tinha um if
que impedia a adição de elementos caso a posição this.tamanho (a mensagem do erro era: não existem elementos nessa posição). Tive que comentar essa parte do código pra que o que vc ensinou nessa aula pudesse funcionar.
oi, vc tem razão. Essa parte eu gravei mas por algum motivo não entrou na aula. O que fiz foi trocar a comparação (ainda tem o mesmo efeito) por essa aqui: if (posicao < 0 || posicao > tamanho){
@@loianegronerOlá! Meu código também apresentou o mesmo erro de exceção comentado acima. Verifiquei seu código no GitHub e também os comentários aqui alterando o IF classe EstruturaEstatica, no método adiciona(int posição, T elemento), para "if(posição this.tamanho)". No entanto mesmo assim não funcionou. Solução então foi comentar na classe EstruturaEstatica, no método adiciona(int posição, T elemento), o trecho do código do IF que levanta essa exceção de "IllegalArgumentException("Posição inválida!")".
@@alvescamila87 if (posicao < 0 && posicao > tamanho){
throw new IllegalArgumentException("Posicao Inválida.");
}
eu deixei assim
Esse curso vai ser concluído futuramente? Eu adorei as aulas! Obrigada por compartilhar seu conhecimento!
Teria como fazer por gentileza um vídeo, de um Sistema em java .
Projeto abaixo:
================================================================
Desenvolver um sistema de controle de filas de um banco fictício utilizando a linguagem Java. Considere que neste banco há apenas uma agência e, esta agência, possui 4 caixas de atendimento.
Os atendimentos a clientes podem ser divididos em 3 categorias:
- Preferencial: para pessoas que possuem atendimento prioritário assegurado por lei;
- Rápido: para pessoas que farão até 3 operações no caixa;
- Comum: para os demais atendimentos.
Com 3 etapas:
1. Construção da interface, (GUI) do NetBeans de acordo com o modelo abaixo. Usando a biblioteca Swing do java.
---------------------------------------------------------------------------------------------------------
Painel usuário:
Para clientes- retirar senha (com um click)
botão botão botão
senha -comum senha - rápida senha- Prioritária
=======================================================
Painel - - (caixas)
Chamar senhas
botão botão botão
botão
caixa - 01 caixa - 02 caixa- 03 caixa- 04
================================================-======
sua senha é:
(xx- xxx) a senha aparecerá aqui
--------------------------------------------------------------------------------------------------------------
2. Criação da fila de atendimento.
Semelhante às máquinas de geração de senhas, há três botões para os clientes: Preferencial, Rápido e Comum. O cliente aperta o botão de acordo com o seu atendimento, sua senha é gerada e colocada em uma fila.
A senha deve ter a letra do tipo do atendimento (P, R ou C), seguida de um número seqüencial. A seqüência é a mesma para os diferentes tipos.
Por exemplo, se chegarem 4 clientes, 1 sendo preferencial, 2 comuns e 1 atendimento rápido, nesta ordem, a fila será.
P-1, C-2, C-3, R-4.
Haverá uma única fila que será implementada com ArrayList, contendo todas as senhas geradas, que serão objetos da classe Senha, que você irá criar.
A classe senha precisa apenas de dois atributos: o tipo e o número.
3. Realização dos atendimentos.
Haverá 4 caixas para atendimentos, que atenderão da seguinte forma:
- Caixa 1: realiza os atendimentos preferenciais. Se não houver atendimentos preferenciais na fila, atende o próximo (rápido ou comum).
- Caixas 2 e 3: atendem primeiro as senhas de atendimento rápido. Se não houver atendimento rápido, atendem o próximo da fila (prioritário ou comum).
- Caixa 4: realiza os atendimentos comum. Se não houver atendimentos comuns na fila, atende o próximo (rápido ou prioritário).
Cada caixa, tem o seu botão. Ao clicar no seu respectivo botão, este, deverá buscar a próxima senha a ser atendida. Na sequência, deverá exibir no painel a senha e o caixa. Por fim, o caixa deverá retirar a senha da fila. Se não houver nenhuma senha na fila, não faz nada.
===========================================================
Obrigado, pela atenção!
NOSSA !!! LOIANE, você é muito fera mesmo.
Parabéns suas aulas, são Ótimas...... !!
Você é sensacional! Parabéns amei o curso!
Excelente conteúdo.
Viciado em vossas aulas
Boa didática. Qual modo de captação de áudio você utiliza? qual fone?
Oi. Loiane. Depois de assistir e digitar todo o código exposto, apresentar-se o erro abaixo.
Exception in thread "main" java.lang.NullPointerException
at java.lang.Integer.compareTo(Unknown Source)
at java.lang.Integer.compareTo(Unknown Source)
at com.loiane.estruturadados.fila.FilaComPrioridade.enfileira(FilaComPrioridade.java:11)
at com.loiane.estruturadados.fila.teste.Aula24.main(Aula24.java:11)
Versão do Eclipse instalada
Eclipse INDIGO - Version: 3.7.0
Boa tarde Loiane, em primeiro lugar obrigado pelo ótimo curso. Segue uma dúvida: na resolução do meu exercício percebi que ao inserir mais de 9 objetos na fila de pacientes o método compareTo é acionado, mas não organiza a fila por prioridade. A organização da prioridade ocorre no momento da remoção do objeto da fila. Eu utilizei a Interface Queue com a classe PriorityQueue. Testei várias vezes debugando. Ao finalizar a adição dos objetos na fila ela ficava parcialmente desordenada, mas ao remover, todas as prioridades ficavam corretas. Esse comportamento está correto?
Loiane esta parte ficou complicado para eu entender.
o que esse Comparableta fazendo com elemento ?
e esse if n intendi o que ele foi fazer la em paciente
protected void enfileira(T elemento) {
Comparable chave = (Comparable) elemento;
int i;
for(i=0; i o.getPrioridade()) {
return 1;
}else if(this.prioridade < o.getPrioridade()) {
return -1;
}
return 0;
}
Ola Loiane!
Estou a tentar baixar o codigo fonte desta aula mas nao vejo o link para tal, é que estou a tentarr copiar e executar o codigo vendo as aulas mas esta a aparecer algguns bugs, sera me podes enviar? Ja tentei entrar neste link loiane.training mas a opção de baixar não esta linkar, tambem ja me increvi e mesm assim nada.
preciso tanto apreder lista com prieoridade e as tuas aulas são bem claras mas para eu eliminar a minha duvida so terei que ter o codigo fonte para comparar com o que copiei vendo as aulas.
Oi Antonio, todo o codigo fonte fica disponível no github: github.com/loiane/estrutura-dados-algoritmos-java
Tive uma exceção de índice inexistente. Para corrigir, meu método enfileiraElemento ficou da seguinte maneira:
@Override
public void enfileiraElemento(T elemento) throws Exception {
aumentarCapacidade();
Comparable chave = (Comparable) elemento;
int i;
for (i = 0; i < this.tamanhoReal; i++) {
if (chave.compareTo(this.elementos[i]) < 0) {
break;
}
}
for (int j = this.tamanhoReal - 1; j >= i; j--) {
this.elementos[j + 1] = this.elementos[j];
}
this.elementos[i] = elemento;
this.tamanhoReal += 1;
}
No mais, aula muito boa. Obrigado pelo curso :)
Queria as aulas de árvore :c
Oi professora, tive que criar um outro método chamado adicionaFila( ); pq o primeiro não estava funcionando tava dando erro de exceção: Posição Invalida ! aí fiz mais um sem o if pra conseguir terminar a aula !
protected boolean adicionaFila(int posicao, T elemento) {
this.aumentaCapacidade();
for(int i = this.tamanho-1; i>=posicao; i--){
this.elementos[i+1] = this.elementos[i];
}
this.elementos[posicao] = elemento;
this.tamanho++;
return false;
}
enfrentei o mesmo erro mas acabei aplicando a solução diferente coloquei um if else após o bloco do for ::
if (i == this.tamanho) {
super.adiciona(elemento); // Se a fila estiver vazia ou o elemento for o maior, adiciona no final
} else {
super.adiciona(i, elemento); // Caso contrário, adiciona na posição correta
}
[ATENÇÃO] Olá! Meu código também apresentou uma exceção. Verifiquei o código da Loiane no GitHub e fiz a alteração do IF na classe EstruturaEstatica, no método adiciona(int posição, T elemento), para "if(posição this.tamanho)". No entanto mesmo assim não funcionou. [SOLUÇÃO] Comentei na classe EstruturaEstatica, no método adiciona(int posição, T elemento), o trecho do código do IF que levanta essa exceção de "IllegalArgumentException("Posição inválida!")". Passou a funcionar.