2

First I need to check if data is present in list then get else set default or empty value on a Java 8 stream.

Currently I am using below code without isPresent but I dont know how to use isPresent in java8.

I am trying something below which is not perfect:

String isScheme = (this.mapProgramApproaches.stream().findFirst().isPresent())? this.mapProgramApproaches.stream().findFirst().get().getIsScheme().toString() : "0";

Where as mapProgramApproaches this is set.

3 Answers 3

6

Don't use isPresent() (it makes no sense to run the Stream pipeline twice).

You can use map to map the value of the Optional to the required String, and then use orElse() to return a default value when the Optional value is not present:

String isScheme = this.mapProgramApproaches.stream()
                                           .findFirst()
                                           .map(o->o.getIsScheme().toString())
                                           .orElse("0");
Sign up to request clarification or add additional context in comments.

Comments

4

Maybe you are looking for something like this:

String isScheme = this.mapProgramApproaches.stream()
        .findFirst()
        .map(p -> p.getIsScheme().toString())
        .orElse("0");

Comments

1

I'm not sure about context in which you are doing this, but I suppose that you would like to check whether some object is scheme and then do something with that. In that case I would suggest implement it like this:

List<String> mapProgramApproaches = new ArrayList<>();
mapProgramApproaches.stream()
                .filter(this::isScheme)
                .findFirst()
                .ifPresent(this::doYourCode)
                .orElse(defaultValue);

It will make your code cleaner. And will help to avoid additional conditionals!

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.