The Optional concept is present in many programming languages. The main goal of the Optional class is to avoid NullPointerException
. It’s much easier to deal with null values when we use the concepts of an Optional.
In this challenge, we will also explore the takeWhile and dropWhile methods from Java 9. Therefore you will be upgrading your knowledge with Optional
, takeWhile
, and dropWhile
!
Are you prepared to have fun with this Java Challenge and refine your Java skills?
Take 5 minutes of your time and get this challenge done!
Optional TakeDropWhile ChallengeOptional TakeDropWhile Challenge
What will happen in the following code?
import java.util.List; import java.util.Optional; public class OptionalChallenge4 { public static void main(String... doYourBest) { List<Integer> list = List.of(10, 1, 3, 5, 7, 9); Optional<Integer> number = list.stream() .takeWhile(i -> i > 5) .dropWhile(i -> i > 9) .findFirst() .or(() -> Optional.of(777)); System.out.println(number); } }
A) Optional[777]
B) Optional[5]
C) Optional[10]
D) Optional[7]
Explanation (Spoiler Alert!):
In the takeWhile
method, element 10 will be taken and then the looping will stop because the number 1 doesn't match the condition. Then, in the next line, elements will be dropped, and since 10 is greater than 9, it will be dropped. As in the end there are no results, the or statement will be executed, returning... what do you think? 🙂
If you want to try out this Java Challenge with an interactive quiz or watch the video explanation, you can access the following link:
https://javachallengers.com/optional-takewhile-dropwhile-challenge/
Right on Challenger, keep rocking with Java! See you in the next challenge!