GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Como encontrar um objeto através do String: Para os armazenamentos dos dados estou usando um Collections que armazena os objetos

Tags: #<Tag:0x00007f2898a57590> #<Tag:0x00007f2898a57428> #<Tag:0x00007f2898a572c0>

Com isso quero saber como eu faço para encontrar um objeto que está armazenado dentro de uma Collections por uma String.
Alguém pode me ajudar por favor ! Desde já agradeço !

Olá.
Você precisa saber ( e informar quando precisa de ajuda) qual é o valor do parâmetro que busca já que quer utilizar uma Sting para encontrar.
Fiz um exemplo baseado no que entendi do seu enunciado, veja se te ajuda.

package aaparametros ;

import java.util.ArrayList ;
import java.util.Optional ;

public class Atividade {

    public static void main ( String [ ] args ) {
	ArrayList < Pessoa > collectionPessoas = new ArrayList < Pessoa > ( ) ;
	collectionPessoas.add ( new Pessoa ( "Joao" , 30 ) ) ;
	collectionPessoas.add ( new Pessoa ( "Maria" , 25 ) ) ;
	collectionPessoas.add ( new Pessoa ( "Zeinho" , 10 ) ) ;

	String buscarpessoapelonome = "joao" ;

	//forma 1
	for ( Pessoa pessoa : collectionPessoas ) {
	    if ( pessoa.getNome ( ).equalsIgnoreCase ( buscarpessoapelonome ) ) {
		//Se achar o objeto pessoa pelo parametro nome voce podera usar os dados aqui
		System.out.println ( "Achei a " + pessoa.getNome ( ) + "\nO nome é : " + pessoa.getNome ( ) + "\nA idade é : " + pessoa.getIdade ( ) ) ;
	    }
	}
	System.out.println ( "\n" ) ;
	//forma 2
	Optional < Pessoa > pessoa = collectionPessoas.stream ( ).filter ( p -> p.getNome ( ).equalsIgnoreCase ( buscarpessoapelonome ) ).findFirst ( ) ;
	if ( pessoa.isPresent ( ) ) {
	    //Se achar o objeto pessoa pelo parametro nome voce podera usar os dados aqui
	    System.out.println ( "Achei a " + pessoa.get ( ).getNome ( ) + "\nO nome é : " + pessoa.get ( ).getNome ( ) + "\nA idade é : " + pessoa.get ( ).getIdade ( ) ) ;
	}
    }

}

//Classe pessoa
class Pessoa {

    String nome ;
    int	   idade ;

    public String getNome ( ) {
	return nome ;
    }

    public void setNome ( String nome ) {
	this.nome = nome ;
    }

    public int getIdade ( ) {
	return idade ;
    }

    public void setIdade ( int idade ) {
	this.idade = idade ;
    }

    public Pessoa( String nome , int idade ) {
	super ( ) ;
	this.nome  = nome ;
	this.idade = idade ;
    }

}

Compreendi perfeitamente, muito obrigado !
Mas é que eu preciso pedir para adicionar o nome e com este nome imprimir apenas os dados que estão neste nome, é basicamente isso, não sei se deu para compreender, mas muito obrigado !
Tenho um objeto que está com seus devidos atributos, e um desses atributos está “Nome” e os demais dados como matricula e disciplina.
Eu quero que somente adicione o nome, e o programa procure todos os dados que estão somente com este nome e imprima.

Se precisar de mais ajuda coloca o código que você já fez aqui. Assim podemos ajudar você acompanhando sua linha de reciocionio na hora de elaborar seu código.

//