Assuming you're using Guava, here's a simple one-liner:
List<Item> list = Stream.concat(Stream.of(item1, item2), Streams.stream(optionalItem))
.collect(ImmutableList.toImmutableList());
Note. This requires a minimum of Java 8 and Guava 21.
source
to share