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.