DiguinDevelo...
Super Participante
Registrado
313 Mensagens
148 Curtidas
Use as tags code seguindo a dica desse tópico, isso facilita e muito a leitura.
Quanto ao código, essa é a forma mais prática.
[code=java]
contas[index] = null;
[/code]
Agora se o remover o elemento do vetor quer dizer, diminuí-lo, ai você terá que fazer um algoritmo de troca, ex, se o vetor possui 20 posições e você remove uma, terá de criar um vetor com 19 e copiar os elementos para esse novo vetor, pois em java, não é possível dimensionar um vetor dinamicamente, todo vetor criado tem a quantidade de posições fixas na memória e "morrerá" assim.
NewUser1000
Membro Junior
Registrado
45 Mensagens
10 Curtidas
Oi cara, beleza?
Acho que esse tópico vai te ajudar:
https://www.hardware.com.br/comunidade/remover-array/1364978/
O código está em c# mas em java vai ser quase a mesma coisa, é mais pela ideia do algoritmo.
Se você estivesse usando um List<>, por exemplo, poderia usar a função .RemoveAt() em c#, mas acredito que java possua uma similar.
tpcvasco
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
Se você estivesse usando um List<>, por exemplo, poderia usar a função .RemoveAt() em c#, mas acredito que java possua uma similar.
Ele não está usando List<> tá usando o vetor nativo do Java.
fjopinheiro, uma opção é realmente usar o List<> fica mais fácil de remover.
Se não puder, pode usar um flag em cada item, que define se o mesmo está removido ou não.
Se mudar a estrutura do vetor não for uma opção, o mais fácil é trocar o item com o último e decrementar 1 em 'index'. Se a ordem tiver q ser mantida, aí será necessário um loop de trocas de itens, do índice q se quer até o final.
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
fjopinheiro
Novo Membro
Registrado
6 Mensagens
2 Curtidas
Boas pessoal.
Agradecido pela ajuda.
8Mas não consegui, pois os meus conhecimentos de Java são fracos.
Eu tenho necessidade de pesquisar no vetor contas[] se o um determinado par id e pin (que são strings) existem, se existirem apagar os dados dessa posição (ou então colocar essa posição a null) , se não existirem devolver mensagem a dizem id e pin não existem.
Agradeço a ajuda.
tpcvasco
General de Pijama
Registrado
2.9K Mensagens
330 Curtidas
Então basta fazer contas[ i ] = null
"Milhouse: - Médicos e bombeiros são heróis.
Bart Simpson: - Olha, as casas continuam pegando fogo e as pessoas continuam doentes. Os verdadeiros heróis são os Schwarzenegger's, os Stallone's, e, em menores proporções, os Vandame's..."
fjopinheiro
Novo Membro
Registrado
6 Mensagens
2 Curtidas
Então basta fazer contas[ i ] = null
Mas como faço a pesquisa?
desculpa mas não sei
Agradecido
Shura16
Ubbergeek
Registrado
2.5K Mensagens
601 Curtidas
Mas como faço a pesquisa?
desculpa mas não sei
Agradecido
Faça um laço de repetição for com o tamanho do array. Para cada item, verifique (usando if) se sua condição é verdadeira, se sim apague os dados, senão apenas exiba a mensagem.
Coragem não é ausência de medo e sim o controle dele.
Linux em casa!
Windows 10, na empresa!
Agora:
Android no bolso!
fjopinheiro
Novo Membro
Registrado
6 Mensagens
2 Curtidas
Faça um laço de repetição for com o tamanho do array. Para cada item, verifique (usando if) se sua condição é verdadeira, se sim apague os dados, senão apenas exiba a mensagem.
Agradecido. Já consegui.
Grande abraço
DiguinDevelo...
Super Participante
Registrado
313 Mensagens
148 Curtidas
Agradecido. Já consegui.
Grande abraço
Compartilhar não custa nada... não seja mais um que está com o modo "venha à nós e o vosso reino nada" ativado igual a tantos nesse fórum que apenas querem solucionar suas dúvidas e esquecem dos demais, lembre-se que outras pessoas podem e com certeza terão a mesma dúvida que a sua, não sejamos egoístas...
Seguindo as boas práticas, adicione um Resolvido ao título do seu tópico, assim na listagem será bem identificado. abraço!
fjopinheiro
Novo Membro
Registrado
6 Mensagens
2 Curtidas
for(int i=1; i<21; i++)
if ((contas .ID.equals(id)) && contas .PIN.equals(pin)){
contas.ID = null;
contas.PIN = null;
contas.nome = null;
System.out.println("A conta "+id+" foi apagada");
} else {
System.out.println ( "não foi possivel apagar conta!");
}
fjopinheiro
Novo Membro
Registrado
6 Mensagens
2 Curtidas
Compartilhar não custa nada... não seja mais um que está com o modo "venha à nós e o vosso reino nada" ativado igual a tantos nesse fórum que apenas querem solucionar suas dúvidas e esquecem dos demais, lembre-se que outras pessoas podem e com certeza terão a mesma dúvida que a sua, não sejamos egoístas...
Seguindo as boas práticas, adicione um Resolvido ao título do seu tópico, assim na listagem será bem identificado. abraço!
peço desculpa tinha respondido do telefone.
NewUser1000
Membro Junior
Registrado
45 Mensagens
10 Curtidas
Ele não está usando List<> tá usando o vetor nativo do Java.
fjopinheiro, uma opção é realmente usar o List<> fica mais fácil de remover.
Se não puder, pode usar um flag em cada item, que define se o mesmo está removido ou não.
Se mudar a estrutura do vetor não for uma opção, o mais fácil é trocar o item com o último e decrementar 1 em 'index'. Se a ordem tiver q ser mantida, aí será necessário um loop de trocas de itens, do índice q se quer até o final.
Sei que ele não estava usando List<>, foi apenas uma dica para facilitar a remoção.
DiguinDevelo...
Super Participante
Registrado
313 Mensagens
148 Curtidas
for(int i=1; i<21; i++)
if ((contas .ID.equals(id)) && contas .PIN.equals(pin)){
contas.ID = null;
contas.PIN = null;
contas.nome = null;
System.out.println("A conta "+id+" foi apagada");
} else {
System.out.println ( "não foi possivel apagar conta!");
}
Bom, algumas pequenas dicas...
Logo no for, evite deixar "números mágicos" como o 21 por exemplo, no futuro seu código pode crescer e o array de contas aumentar, daí você terá que voltar nesse for e arrumar (se lembrar...), o ideal seria:
[code=java]
for (int i = 0; i < contas.length; i++) { // todo array começa pelo índice zero, cuidado!!!
...
[/code]
Todo array por padrão possui o atributo length, uma forma segura e elegante de usar...
Segundo ponto, isso:
[code=java]
contas.ID = null;
contas.PIN = null;
contas.nome = null;
[/code]
Não deveria ser?
[code=java]
contas[i].ID = null;
contas[i].PIN = null;
contas[i].nome = null;
[/code]
Sendo que isso:
[code=java]
contas[i] = null;
[/code]
Seria o ideal, pois evita consumir memória desnecessariamente, já que o que você fez não elimina o objeto Conta do array, mas apenas "limpa" seus atributos, logo quando você precisar ocupar a mesma posição, terá de fazer new Conta novamente, o que pode não dar tempo para o coletor de lixo passar e remover o objeto Conta anterior... tá pegando a idéia?
Todas as dicas que demos a você era justamente para chegar nessa última linha...
Sugiro fortemente você começar a estudar essa apostila gratuita, tem a opção de cadastrar seu email e receber o pdf, ou ler diretamente do navegador, pois os conceitos que você está usando são considerados avançados e não ter uma base legal do comportamento de objetos, estado de memória, etc, pode acabar te complicando lá na frente.
E por favor, não leve meu "puxão de orelha" na maldade, é que esse comportamento é tão rotineiro no fórum e a gente vem com muito boa vontade, sem ganhar nada com isso (financeiramente falando óbvio) e acabamos chateados com isso.
E toco no mesmo assunto, siga as boas práticas desse tópico e formate seu código adequadamente, viu só como fica bem mais apresentável e legível? Chega até ser "cheiroso"
Sucesso nos estudos e bemvindo ao fórum dos loucos