Optional or orElse

What’s more elegant

Optional<Header> resultcode = Arrays.stream(response.getAllHeaders())
        .filter(h -> "X-Header-Result".equals(h.getName()))
        .findFirst();

return resultcode.isPresent() ? resultcode.get().getValue() : "";

Or

String resultcode = Arrays.stream(response.getAllHeaders())
        .filter(h -> "X-Header-Result".equals(h.getName()))
        .findFirst().map(NameValuePair::getValue)
        .orElse("");

return resultcode;