Buscar em arraylist

6 respostas
cscalea

Galera, meu Arraylist possui projetos, e cada projeto tem seus atributos (um deles: código do projeto)
Eu quero o usuário consiga buscar um projeto digitando um código de projeto, e seja feita uma busca pelo arraylist do projeto correspondente.ao código digitado…

import java.util.ArrayList;
import javax.swing.JOptionPane;
import java.util.Iterator;

public class Agencia{
   String dadosProjeto = "";
   private ArrayList <Projeto> projetos;
   
   public Agencia(){
      projetos = new ArrayList<>();
   }
   
   public void inserirProjeto(){
      
      String titulo = JOptionPane.showInputDialog("Título do projeto: ");
      double orcamento = Double.parseDouble(JOptionPane.showInputDialog("Orçamento do projeto: "));
      String duracao = JOptionPane.showInputDialog("Duração do projeto(meses): ");
      String instituicao = JOptionPane.showInputDialog("Insituição: ");
      String areaPesq = JOptionPane.showInputDialog("Área relacionada a pesquisa: ");
      int codProjeto = Integer.parseInt(JOptionPane.showInputDialog("Código do projeto: "));
      Projeto  novoProjeto = new Projeto(titulo, orcamento, duracao, instituicao, areaPesq, codProjeto);
      projetos.add(novoProjeto);
      dadosProjeto += "********************************\nTítulo: " + titulo + "\nOrcamento: " + orcamento + "\nDuracao (meses): " + duracao + "\nInstituicao: " + instituicao + "\nÁrea de pesquisa: " + areaPesq + "\nCódigo do Projeto: " + codProjeto + "\n\n********************************\n";
      
   }
   
   public void listarProjetos(){
      JOptionPane.showMessageDialog(null, "======================PROJETOS======================\n\n\n" + dadosProjeto);
      
   }
   
   
   public int buscaCodigoProjeto(int codProjeto){
      
      for(int i = 0; i < projetos.size(); i++){
         Projeto projeto = projetos.get(i);
         if(projeto.getCodProjeto() == codProjeto){
            return i;
         }
      }
      return -1;
         
   }

6 Respostas

gpd38
Classe Main
//Criar o array
//Adicionar os projetos
//Percorrer o array comparando a propriedade codigo com o que foi digitado
elanod

Boa tarde amigo fiz um exemplo, com a solução do teu problema . você tera que adaptar o codigo a sua necessidade e organize os nome das classe do jeito que quiser sugiro refaça este exemplo do jeito que esta faça rodar e depois adpte o codigo a sua necessidade

codigo da Classe ItemProjeto:

package provi;

public class ItemProjeto {
	
	private String titulo;		// = "Título do projeto:";
    
	private double orcamento; 	//= 10;
    
	private String duracao;		//  = "Duração do projeto(meses): ";
    
	private String instituicao;	// = "Insituição: ";
    
	private String areaPesq; 	// = "Área relacionada a pesquisa: ";
    
	private int codProjeto;      // = 4;

	public String getTitulo() {
		return titulo;
	}

	public void setTitulo(String titulo) {
		this.titulo = titulo;
	}

	public double getOrcamento() {
		return orcamento;
	}

	public void setOrcamento(double orcamento) {
		this.orcamento = orcamento;
	}

	public String getDuracao() {
		return duracao;
	}

	public void setDuracao(String duracao) {
		this.duracao = duracao;
	}

	public String getInstituicao() {
		return instituicao;
	}

	public void setInstituicao(String instituicao) {
		this.instituicao = instituicao;
	}

	public String getAreaPesq() {
		return areaPesq;
	}

	public void setAreaPesq(String areaPesq) {
		this.areaPesq = areaPesq;
	}

	public int getCodProjeto() {
		return codProjeto;
	}

	public void setCodProjeto(int codProjeto) {
		this.codProjeto = codProjeto;
	}
	    
}

codigo da Classe Projeto:

package provi;


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

public class Projeto {	


	private List<ItemProjeto> projetos = new ArrayList<ItemProjeto>();

	public void adicionarProjeto(ItemProjeto itemProjeto) {
		/*adiciona projeto na lista de projetos adicionando somente se
		  esse objeto não existir na lista. */ 
		if (!projetos.contains(itemProjeto)) {
			projetos.add(itemProjeto);	
		}
				    		  	    
    }
	
	public void limpar(){
		projetos.clear(); //limpa toda a lista
	}
	
	@SuppressWarnings({ "unchecked", "rawtypes" })
	public List<ItemProjeto> listarProjetos() {    	               
        return new ArrayList(projetos);
    }

}

codigo da Classe AgenciaControle para executar e testar o exemplo:

package provi;

import java.util.Iterator;

public class AgenciaControle {
	
	/*
	private Projeto proje; 
			 
	public Projeto getProje() {
		return proje; 
	}
	
	public AgenciaControle(){
		proje = new Projeto(); * 
		 
	}
   */
	/*exibe os projetis do carrinho retornando em uma list
	@SuppressWarnings("rawtypes")
	public List getProjetos(){
		//System.out.println("listando projetos");
		return proje.listarProjetos();	
	}
	*/ 
	  
	  public static void main(String[] args){
		  
		  		  
		  Projeto projeto = new Projeto();
		  
		  // projeto.limpar(); exemplo para limpar a lista

		  //adicionando primeiro projeto na lista		  
		  ItemProjeto itemProjeto = new ItemProjeto();
		  //String titulo = JOptionPane.showInputDialog("Título do projeto: ");
		  String titulo = "Título do projeto 1";
		  itemProjeto.setTitulo(titulo);		  
		  
	      //double orcamento = Double.parseDouble(JOptionPane.showInputDialog("Orçamento do projeto: "));
		  double orcamento = 10;
		  itemProjeto.setOrcamento(orcamento);		  
		  
	      //String duracao = JOptionPane.showInputDialog("Duração do projeto(meses): ");
		  String duracao = "12 meses ";
		  itemProjeto.setDuracao(duracao);
		  
	      //String instituicao = JOptionPane.showInputDialog("Insituição: ");
		  String instituicao = "nome Insituição ";
		  itemProjeto.setInstituicao(instituicao);
		  		  
	      //String areaPesq = JOptionPane.showInputDialog("Área relacionada a pesquisa: ");
		  String areaPesq = "Área 1 ";
		  itemProjeto.setAreaPesq(areaPesq);
		  
	      //int codProjeto = Integer.parseInt(JOptionPane.showInputDialog("Código do projeto: "));
		  int codProjeto = 1;
		  itemProjeto.setCodProjeto(codProjeto);		  
		  
		  projeto.adicionarProjeto(itemProjeto);
		  
		  
		  //adicionando um segundo projeto na lista		  
		  itemProjeto = new ItemProjeto();		  		  		  
		  itemProjeto.setTitulo("Título do projeto 2 ");		  	    		  
		  itemProjeto.setOrcamento(20);		  		  
		  itemProjeto.setDuracao("6 meses");		  	      		 
		  itemProjeto.setInstituicao("Insituição 2 ");
		  itemProjeto.setAreaPesq("Área 2");		 		  
		  itemProjeto.setCodProjeto(2);		  
		  projeto.adicionarProjeto(itemProjeto);		  
		  
		  /*fazendo pesquisa e retornando resultado da pesquisa*/		  
		  Iterator<?> itensProjeto = projeto.listarProjetos().iterator();		  
		  while (itensProjeto.hasNext()) {					  
			  	ItemProjeto item = (ItemProjeto)itensProjeto.next();
			  	if (item.getCodProjeto() == 2){
			  		
			  		System.out.println("CodProjeto: "+item.getCodProjeto());
			  		System.out.println("Título: "+item.getTitulo());			  					  					  							
					System.out.println("Orçamento: "+item.getOrcamento());															
					System.out.println("Duração: "+item.getDuracao());													
					System.out.println("Instituição: "+item.getInstituicao());
					System.out.println("Area: "+item.getAreaPesq());
			  	}
		  }	  	

		  
	   }

}
pmlm

O post tem mais de 4 anos. Nesta altura ou ele já sabe fazer isto de olhos fechados ou já desistiu da área há muito tempo :slight_smile:

elanod

agora que vi a data do post. tinha aparecido para mim, e não prestei atenção na data. e pensei que tinha sido postado recentemente

staroski

De vez em quando isso acontece com meu usuário também, aparecem posts antigos, como se fossem novos.

gpd38

Mesmo antigo, hoje tem uma resposta válida o que pode ajudar outras pessoas que estão entrando na área ao invés de repetir as mesmas perguntas

Criado 12 de outubro de 2018
Ultima resposta 11 de abr. de 2023
Respostas 6
Participantes 5