[Ajuda] Exercícios de Lista

5 respostas
M

Olá pessoal, estou no segundo período de Sistemas de Informação, e na matéria de Estrutura de dados a professorapassou para gente uns exercícios de Listas, era pra fazer a mão mesmo(escrevendo a caneta),considerando que ja existisse uma classe Lista, mais ela disse que eu poderia fazer no Eclipse e entregar pra ela depois, bom estou com um problema na hora de criar a classe Lista. Minha classe lista vai ter os comandos de inserir,remover,inicializar etc né?
Mais como vou criar uma LISTA mesmo, estou com essa dúvida, olha só minha classe:

public class Lista {
	public int RetiraLista(int p_retira){
		int info = Lista[p_retira];
		
	}

}

Bom eu sei, deeu erro ai porque Lista tem o mesmo nome da Classe, no caso eu teria que fazer o que? Construir um método construtor da Classe lista e criar uma Lista? Ainda não sei como criar uma lista, pessoal, sou muito leigo ainda e é por isso que estou aqui, me desculpem pois essa é a primeira vez que estou fazendo isso, obrigado.

5 Respostas

gqferreira

E aê cara... blz?
Não sei se a list que você quer saber é referente a GUI ou a uma Collection, por via das dúvidas, fiz os dois:

GUI:
package exemplosGuj;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.DefaultListModel;
import javax.swing.JFrame;
import javax.swing.JList;
import javax.swing.JOptionPane;
import javax.swing.JScrollPane;
import javax.swing.JTextField;


@SuppressWarnings("serial")
public class ListaSwing extends JFrame{
	private JList jlistLista;
	private JScrollPane spScroolPane;
	private JTextField tfValor;
	private JButton btRemover;
	private JButton btExibir;
	private JButton btAdicionar;

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		ListaSwing lista = new ListaSwing();
		lista.setVisible(true);
	}
	/**
	 * Construtor da classe
	 */
	public ListaSwing()
	{
		
		this.setTitle("Lista");
		this.setSize(400,244);
		this.setLayout(null);
		this.setResizable(false);
		this.setLocationRelativeTo(null);
		this.setDefaultCloseOperation(EXIT_ON_CLOSE);
		{
			spScroolPane = new JScrollPane();
			getContentPane().add(spScroolPane);
			spScroolPane.setBounds(12, 12, 185, 181);
			{
				String [] itens = {"A", "B", "C", "D"}; 
			     
				jlistLista = new JList(itens);
				spScroolPane.setViewportView(jlistLista);
				jlistLista.setBounds(164, 23, 142, 173);
			}
		}
		{
			tfValor = new JTextField();
			getContentPane().add(tfValor);
			tfValor.setBounds(203, 12, 183, 25);
		}
		{
			btAdicionar = new JButton();
			getContentPane().add(btAdicionar);
			btAdicionar.setText("Adicionar");
			btAdicionar.setBounds(203, 37, 183, 27);
			btAdicionar.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					if (tfValor.getText().length()>0)
					{
						  DefaultListModel dlm = new DefaultListModel();  
						     for(int i = 0; i < jlistLista.getModel().getSize(); i++) {  
						         dlm.addElement(jlistLista.getModel().getElementAt(i));  
						     }  
						     dlm.addElement(tfValor.getText());  
						     jlistLista.setModel(dlm);  
					}
					else
					{
						JOptionPane.showMessageDialog(null, "Coloque um valor antes", "Erro", JOptionPane.ERROR_MESSAGE);
					}
				}
			});
		}
		{
			btRemover = new JButton();
			getContentPane().add(btRemover);
			btRemover.setText("Remover selecionado");
			btRemover.setBounds(203, 92, 184, 27);
			btRemover.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					if (jlistLista.getSelectedIndex()>=0)
					{
						DefaultListModel dlm = new DefaultListModel();  
					     for(int i = 0; i < jlistLista.getModel().getSize(); i++) {  
					         dlm.addElement(jlistLista.getModel().getElementAt(i));  
					     }  
					     dlm.remove(jlistLista.getSelectedIndex());
					     jlistLista.setModel(dlm);  
					}
					else
					{
						JOptionPane.showMessageDialog(null, "Escolha um registro primeiro", "Erro", JOptionPane.ERROR_MESSAGE);
					}
				}
			});
		}
		{
			btExibir = new JButton();
			getContentPane().add(btExibir);
			btExibir.setText("Exibir selecionado");
			btExibir.setBounds(204, 147, 183, 26);
			btExibir.addActionListener(new ActionListener() {
				public void actionPerformed(ActionEvent evt) {
					if (jlistLista.getSelectedIndex()>=0)
					{
						JOptionPane.showMessageDialog(null, jlistLista.getSelectedValue(),"Voce selecionou...", JOptionPane.INFORMATION_MESSAGE);
					}
					else
					{
						JOptionPane.showMessageDialog(null, "Escolha um registro primeiro", "Erro", JOptionPane.ERROR_MESSAGE);
					}
				}
			});
		}
	}
}

Collection:

package exemplosGuj;

import java.util.ArrayList;
import java.util.List;

public class Lista {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		List<String> lista = new ArrayList<String>();
		/**
		 * Adicionando quatro letras
		 */
		lista.add("A");
		lista.add("B");
		lista.add("C");
		lista.add("D");
		
		/**
		 * Imprimindo as quatro
		 */
		for (int i = 0;i<lista.size();i++)
		{
			System.out.println("Letra: "+lista.get(i));
		}
		System.out.println("------------------------");
		/**
		 * Removendo a letra B
		 */
		lista.remove(1);
		/**
		 * Trocando a letra A por X
		 */
		lista.set(0, "X");
		
		/**
		 * Imprimindo as tres
		 */
		for (int i = 0;i<lista.size();i++)
		{
			System.out.println("Letra: "+lista.get(i));
		}
		System.out.println("------------------------");
		/**
		 * Mostrando a posicacao da letra C
		 */
		System.out.println("Letra C esta na posicao: "+lista.indexOf("C"));
		System.out.println("------------------------");
		System.out.println("Na posicao 0 tem a letra: "+lista.get(0));
	}

}

Espero ter ajudado.... :thumbup:

M

Olá, agora eu entendi, obrigado.
Mais ainda estou com problemas, a professora passou umas funções no quadro de retira,insere etc…
mais na hora que vou colocas da erro…
Tipo de Erro : The type of the expression must be an array type but it resolved to List

import java.util.ArrayList;
import java.util.List;
public class Lista {
   List<String> lista = new ArrayList<String>();
   public int RetiraLista(int p_retira){
	   int p_fim;
	  int  info = lista[p_retira];
	  int p_trab = p_retira;
	  while(p_trab < p_fim){
		  lista[p_trab] = lista[p_trab+1];
		  p_trab++;
	  }
	  p_fim--;
   
	   return info;
   }
 
}
M

Bom pessoal, agora eu entendi, a professora passou uma classe lista no quadro com as funções, um exemplo se eu fosse inserir um elemento : lista.inserelista…
Vou falar com ela se posso fazer assim direto, importando as bibliotecas Array e List, agora eu to só com umas dúvidas: qual a função que eu uso para iniciar a lista, para buscar um elemento na lista, e para verificar se a lista esta cheia?
OBS : Agora que lembrei, tem que usar alocação sequencial estática, então tenho que usar Arrays certo?
Valeu pessoal!

gqferreira

Como te disse:

//Delacara uma list de string
List<String> lista = new ArrayList<String>();
lista.add("Agora tem conteudo...");
lista.add("... e mais um");

//Retorna o conteudo da posicao 0 da list lista.get(0); //Pesquisa e retorna a posição da String procurada. lista.indexOf("Java")

if (lista.getSize()>0) { System.out.println("Tem conteudo"); } else { System.out.println("Esta vazia"); }

M

Ah muito obrigadoo, esclareceu mesmo, mais ainda tenho uma dúvida final kkkk(to me sentindo um sangue suga), No caso teria como eu pré determinar o tamanho da Lista? Porque no caso quando a lista vai aumentando quando se insere um elemento é chamado de Alocação Dinâmica né?
A professora disse que vamos trabalhar com sequencial estática, então teria como eu determinar o tamanho que vai ser a lista?
Ou vou ter que usar um vetor mesmo?

Criado 24 de outubro de 2009
Ultima resposta 25 de out. de 2009
Respostas 5
Participantes 2