Set default value for remaining size of list by use of Java 8 and Stream
As mtj already mentioned in the comment, adding stream trickery to fulfill this need only makes the code less readable. Streams are nifty, exciting and popular but they are not always the right tool for the job. Sometimes a plain loop is still the best choice.
The common pattern in padding a collection (well, most often it's a string that gets padded) to certain size is to use a while loop. It has least amount of excess variables and code and the syntax communicates intent quite naturally (&quot;while size is less than 16, do this&quot;). But this still only tells that you are intentionally padding the collection to 16 elements. You also need to document in comments the reason why you are padding the collection to 16 elements.
List&lt;Address&gt; addresses = cardAccountDetails
    .stream()
    .map(AccountService::buildAddress)
    .collect(Collectors.toList());

while (addresses.size() &lt; 16) {
    addresses.add(buildDefaultAddress());
}