Approach 1: Using findFirst()
List<String> list = Arrays.asList("a","b","c");
String first = list.stream().findFirst().orElse(null);
System.out.println(first); // a
Why it works:
findFirst()returns anOptional.orElse(null)provides a default in case the list is empty.
Approach 2: Using limit(1) and collectingAndThen (Alternative)
List<String> list = Arrays.asList("a","b","c");
String first = list.stream()
.limit(1)
.collect(Collectors.collectingAndThen(
Collectors.toList(),
l -> l.isEmpty() ? null : l.get(0)
));
System.out.println(first); // a
Why it works:
limit(1)restricts the stream to one element.collectingAndThenapplies post-processing to extract the element.
