/* package whatever; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Date;
import java.util.List;
import java.util.stream.Collectors;

class Pessoa {

    private String nome;
    private Date data_nasc;		

    public String getNome() {
        return nome;
    }

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

    public Date getData_nasc() {
        return data_nasc;
    }

    public void setData_nasc(Date data_nasc) {
        this.data_nasc = data_nasc;
    }

    @Override
    public String toString() {
            return "Pessoa [nome=" + nome + ", data_nasc=" + data_nasc + "]";
    }	
}
class Ideone
{
	public static Date stringParaData(String data) throws ParseException
    {
        SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd");         
        Date d = df.parse(data);        
        return d;
    }
	public static void main (String[] args) throws java.lang.Exception
	{
		List<Pessoa> pessoas = new ArrayList<>();

		Pessoa p1 = new Pessoa();
		p1.setNome("Alex");
		p1.setData_nasc(stringParaData("1988/06/07"));		
		pessoas.add(p1);
		
		Pessoa p2 = new Pessoa();		
		p2.setNome("Maria");
		p2.setData_nasc(stringParaData("1991/07/23"));	
		pessoas.add(p2);
		
		Pessoa p3 = new Pessoa();		
		p3.setNome("Joao");
		p3.setData_nasc(stringParaData("1970/07/16"));			
		pessoas.add(p3);
		
		Pessoa p4 = new Pessoa();		
		p4.setNome("Jose");
		p4.setData_nasc(stringParaData("1981/09/06"));		
		pessoas.add(p4);
		
		Pessoa p5 = new Pessoa();		
		p5.setNome("Paulo");
		p5.setData_nasc(stringParaData("1998/07/16"));		
		pessoas.add(p5);
	        
	        Pessoa p6 = new Pessoa();		
		p6.setNome("Rose");
		p6.setData_nasc(stringParaData("1998/07/16"));		
		pessoas.add(p6);
		
		//Busca por data...

        GregorianCalendar gregorianCalendar = new GregorianCalendar();
        List<Pessoa> collect = pessoas.stream()
                .filter(f -> getDayAndMonth(f.getData_nasc(), gregorianCalendar))
                .collect(Collectors.toList());
                
        
        collect.forEach(x -> System.out.println(x));
	}
	public static Boolean getDayAndMonth(Date dt0, GregorianCalendar gregorianCalendar){
        if (dt0 == null) return false;
        GregorianCalendar getInfoDate = gregorianCalendar;
        getInfoDate.setTime(dt0);
        int d0 = getInfoDate.get(Calendar.DAY_OF_MONTH);
        int m0 = getInfoDate.get(Calendar.MONTH);
        getInfoDate.setTime(new Date());
        int d1 = getInfoDate.get(Calendar.DAY_OF_MONTH);
        int m1 = getInfoDate.get(Calendar.MONTH);
        return (d0 == d1 && m0 == m1);
    }
}