Dúvida inserir objeto em uma fila?

3 respostas
N

Boa tarde,

Estou com uma dúvida num exercício, se puderem me ajudar eu agradeço. Tenho uma Classe Palavra com dois atributos, sendo que um é do tipo da classe e outro um int, os dois são inicializados no construtor e tenho métodos de retorno para eles…até aí tudo bem… Tenho minha outra classe com main e nela tenho uma fila do tipo da classe Palavra: CircularQueue q= new CircularQueue(40);. Tenho um laço de repetição e um array de String que pega trechos(palavras) de um arquivo texto(Uso o método Split) e quero inserir esses trechos dentro da fila, para inserir dentro da fila é q.enqueue(o que deseja inserir), mas quero inserir objetos do tipo Palavra com a posição da linha que está a palavra que procuro no arquivo…isso consegui fazer, mas meu problema é a inserção, como faço? já tentei várias coisas, tipo: q.enqueue(new Palavra(array[i])linha); nesse caso o resu ltado é null, pois eu não tenho um variavel de referencia…mas como faço para inserir novos objetos do tipo da minha classe e fila?

3 Respostas

rxca

Student 2011,

não sei se eu entendi direito, caso eu tenha pensado em algo errado me corrija.
Mas o que eu notei foi que você precisa criar vários objetos Palavra pra poder inserí-los na fila circular; esse objeto palavra tem um atributo int e uma referência pra outro objeto.
Na verdade, se você quiser inserir um objeto na fila, do jeito que você exemplificou, você vai ter que utilizar:

q.enqueue(new Palavra(<referência pra próxima palavra>, <posição da palavra>)); // como você mencionou  em cima, os dois objetos estão sendo inicializados no construtor

Essa é só uma sugestão. ou então talvez você criasse um outro construtor que recebesse um parâmetro somente; talvez isso resolvesse.
mas pra isso a gente precisa saber qual qual a ideia por trás disso, pra saber como a gente pode te ajudar!

[]'s

N

Essa é a ideia mesmo, você entendeu certo…Q eu tenho: Uma Classe Palavra com dois atributos, sendo um do tipo da classe e outro int…Os dois sendo inicializados no construtor. Na classe do ‘main’ eu tenho um fila circular de tipo Palavra(tipo da classe), e quero inserir novos objetos a cada iteração do laço, ou seja, pego uma nova palavra do arquivo texto com uso o split para quebrar a string e jogar num array de String e depois minha intenção é essas palavra dentro da fila criando novos objetos do tipo Palavra…problema: quando tento jogar uma string(no caso o array de String com a posição que tem a palavra) dentro da fila do tipo Palavra ele acusa um erro, pois não posso jogar String num tipo Palavra…Mas vou tentar o seu exemplo e te aviso se caso eu não consiga…Muito obrigado!!!

N

Olá…Modifiquei um pouco o programa…Coloque o atributo texto da classe Palavra como String e minha fila continua com o tipo Palavra…Estou inserindo assim:
q.enqueue(new Palavra(pegaPalavra[i],contaLinha));//onde pegaPalavra vetor tipo String que uso Split para dividir as strings do arquivo texto e contaLinha variável para pegar o número que está a palavra na linha do arquivo. Não está dando erro, mas quando mando imprimir só “Palavra2abced”, ou seja, sai o endereço de memória e não o o texto do array com sua linha…Q estou errando???Obrigado!!

Criado 6 de novembro de 2011
Ultima resposta 8 de nov. de 2011
Respostas 3
Participantes 2