Buscar em arraylist

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;
         
   }
Classe Main
//Criar o array
//Adicionar os projetos
//Percorrer o array comparando a propriedade codigo com o que foi digitado

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());
			  	}
		  }	  	

		  
	   }

}

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:

3 curtidas

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

1 curtida

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

1 curtida

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