I am working with a List of Person objects.  I am trying to quickly identify and return all Person's with the maximum date.
For example:
Persons:[
{
  id: 1
  submitDate: 2010-01-01
  name : john Smith
},
{
  id: 1
  submitDate: 2011-01-01
  name : john Smith
},
{
  id: 2
  submitDate: 2011-01-02
  name : jason Doe
},
{
  id: 1
  submitDate: 2012-01-01
  name : john Smith
},
{
  id: 1
  submitDate: 2013-01-01
  name : john Smith
},
{
  id: 2
  submitDate: 2013-01-02
  name : jason Doe
}
]
I am looking for a way, in Java, to return the following (Max submitDate value):
Persons: [
{
  id: 1
  submitDate: 2013-01-01
  name : john Smith
},
{
  id: 2
  submitDate: 2013-01-02
  name : jason Doe
}
]
Any thoughts on how to best achieve this?
======================================================================== I've tried:
List<Person> personList = Lists.newArrayList();
getPersonList().stream()
               .map(this.setSource)
               .max(Comparator.comparing(Person::getSubmitDate))
               .map(personList::add);
However it returns a single Person record, Not the max submitDate for each Person
 
    