Как-то так, чтобы получить один из списков. List<Object> inDateList = list.stream().filter(o-> startDate< o.createDate && o.createDate< endDate).collect(Collectors.toList());
, затем List<Object> outDateList = new ArrayList<>(list); outDateList.removeAll(inDateList);
EDIT
Просто чтобы уточнить мою заметку выше.
public Map<String, Set<Proposal>> groupProposals(Iterable<Proposal> proposals) {
SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMdd");
return proposals.stream()
//GroupingBy creates the Map<Key, Collection<Something>>
.collect(Collectors.groupingBy(p->sdf.format(p.getCreateDate()),//Creates the Key and buckets
Collectors.mapping(i-> i, Collectors.toSet()))); //what kind of buckets do you want.
}