Tenho q fazer um applet que leia uma quantidade determinada de inteiros a partir de um JTextField. E exiba-os em uma JTextArea se, e somente se, este número ainda não foi digitato.
O problema é o seguinte: não estou conseguindo imaginar como vou fazer para verificar se o número digitado já foi registrado no array ou não.
Vou postar o exercicio completo aqui:
Utilize um array unidimensional para resolver o seguinte problema: escrever um applet que leia 20 inteiros. A medida que cada número for lido, exiba-o somente se ele não tiver sido lido. Previna-se para o pior caso em que todos os 20 números sao diferentes. Utilize o menor array possivel para resolver este problema.
A cada vez que ele digitar um número no textfield vc pode fazer a verificação se o número está contino na array…
Se não estiver ainda vc grava na array, caso contrário vc pode retornar uma mensagem alertando que o número já foi digitado.
F
fernandooPJ
Grande guvilla , obrigado por tentar ajudar. O problema meu é o que você mesmo disse. Eu não consigo fazer um laço para verificar o número digitado com os existentes no array. Eu tenho a resposta em mente só que não estou conseguindo passa-la para o código. Sei que tenho que comparar o número digitado com cada elemento do array.
Valeu
F
feliperodPJ
Cara dá uma olhada na API do Java, e veja se você acha um método que procura um elemento em um arraylist....
Mas vou quebrar seu galho... rs
faça assim ó: (pode ser que tenha algum erro, pois não testei esse código, mas já dá pra você começar):
Ae feliperod, ainda nao conhecia essa classe. Procurei como usá-la mas não consegui, tentei dessa forma como vc mostrou mas nao deu certo. Tem como me dar uma luz?? Postei meu codigo
Obrigado
Fernando
importjava.awt.*;importjava.awt.event.*;importjavax.swing.*;importjava.util.*;publicclassEx13extendsJAppletimplementsActionListener{JLabelnumeroLabel,areaLabel;JTextFieldnumeroField;JTextAreasaidaArea;JScrollPanerolagemPane;intduplicata[]=newint[20];intcounter=0;Stringsaida="";publicvoidinit(){Containercontainer=getContentPane();container.setLayout(newFlowLayout());numeroLabel=newJLabel("Número");container.add(numeroLabel);numeroField=newJTextField(4);container.add(numeroField);numeroField.addActionListener(this);areaLabel=newJLabel("Números já impressos");container.add(areaLabel);saidaArea=newJTextArea(8,20);rolagemPane=newJScrollPane(saidaArea);container.add(rolagemPane);}ArrayListduplicataList;publicvoidactionPerformed(ActionEvente){intnumero=Integer.parseInt(e.getActionCommand());duplicataList=newArrayList();if(duplicataList.contains(numero))showStatus("Já digitado");}}
D
DiltonPJ
dae kra blz, fiz um programinha bem simples que não usa nenhuma classe em especial, soh defini uma função pra verificar se o vetor já contém determinado número... dá uma olhada, e altere ele para o seu caso ae, qualquer dúvida sobre o código é só perguntar...
Grande Dilton.
Era isso mesmo que eu estava querendo fazer, tenho q praticar muito ainda pra chegar ao seu nível.
valeu mesmo
Fernando
F
feliperodPJ
"fernandoo":
Ae feliperod, ainda nao conhecia essa classe. Procurei como usá-la mas não consegui, tentei dessa forma como vc mostrou mas nao deu certo. Tem como me dar uma luz?? Postei meu codigo
Que bom que deu certo da forma que o Dilton passou, mas usando o ArrayList seria muito mais simples.
Você só esquece de adicionar no duplicatalist o número. Como ele vai testar um numero que não foi adicionado?
O que você precisa é criar um método que teste se o número existe, e caso não exista, adicione os números que o cara digita no ArrayList.
Por exemplo:
// ArrayList duplicatalist; deve estar declarada como atributo da classe;//duplicatalist = new ArrayList(); deve estar no construtor da classe.publicvoidinserirNumero(intnumero){if(duplicatalist.contains(numero)){showStatus("JáDigitado");}else{duplicatalist.add(numero);}}
Assim é para dar certo. É claro que o que o Dilton fez funciona, mas porque ter que reinventar a roda toda vez que temos um problema, se podemos usar as classes prontas para tal tarefa.
Dá uma procurada sobre um tutorial sobre Coleções.
Qualquer dúvida fico feliz em poder ajudar.
té +
D
DiltonPJ
“fernandoo”:
Grande Dilton.
Era isso mesmo que eu estava querendo fazer, tenho q praticar muito ainda pra chegar ao seu nível.
valeu mesmo
Fernando
q issu kra, todo mundo aki tah aprendendo, e com certeza praticar eh o melhor meio pra issu…
“feliperod”:
Assim é para dar certo. É claro que o que o Dilton fez funciona, mas porque ter que reinventar a roda toda vez que temos um problema, se podemos usar as classes prontas para tal tarefa.
concordo plenamente felipe, soh q qdo u kra tah começandu e sempre bom fazer alguma coisa na mao pru kra ir pegandu a logica. Mas sem duvida nenhuma fica muito melhor usandu as classes prontas. Além de tudo, esse eh um dos pontos principais em Java, a reutilização de softwares, de classes… :joia:
flw ae
F
fernandooPJ
o foda é que tem apenas 3 meses q estou mexendo com Java. e estou aprendendo por conta propria. estou me esforçando mesmo. dae estou fazendo os exercicios que meu livro pede. quando nao consigo peço ajuda. quando eu estiver programando legal, vou correr atras do pacote API pra melhorar, desempenho, arquitetura,…
valeu pela força galera
F
feliperodPJ
É isso ai…
mas pelo menos agora ele já sabe duas formas de se fazer a mesma coisa.