Other answers use old deprecated classes or are too complex.
java.time
The old date and time classes have been replaced by the java.time platform built into Java 8 and later, with back ports on Java 6 and 7 and Android. Old classes turned out to be poorly designed, confusing, and unpleasant. Avoid them.
LocalDate
Among the new LocalDate classes is the date value only with no time and no time zone. Until saved, a time zone is required to determine today. There are new sunrises in the east, so the date can vary between time zones, tomorrow in Paris and yesterday in Montreal.
ZoneId zoneId = ZoneId.of( "America/Montreal" ); LocalDate today = LocalDate.now( zoneId );
You can add and subtract. We want to return for a week, so we subtract the week.
LocalDate limit = today.minusWeeks( 1 );
Loops a day until we reach the limit. Collect each date as it grows.
A List - an ordered collection, sequence. The ArrayList class is a suitable implementation for our needs.
List< LocalDate > list = new ArrayList<>();
A loop, while each reduced date will still be later than our breakpoint (a week ago).
LocalDate localDate = today; while ( localDate.isAfter( limit ) ) { list.add( localDate );
Sorting
Finally, sort your list in whatever direction you want.
The Collections class (note the plural 'in name) provides many useful methods. Call sort for a natural order. Call reverse for the opposite of the natural order.
Collections.sort( list ); Collections.reverse( list );