I doubt that the second attempt (import java.util.stream;
) works. As JonSkeet pointed out in their comment, it should result in a compilation error: error: cannot find symbol
. Maybe you wanted to import java.util.stream.*;
?
To the actual question:
If we import with a wildcard, that is the asterisk (*
) character, only the direct classes in this package will be imported, not the classes in sub-packages. Thus with an import java.util.*
, we import classes like ArrayList
, LinkedList
and Random
. A full list can be found here. The class Stream
actually resides in the sub-package java.util.stream
and is not imported when you import java.util.*;
.
To import Stream
, we can either import java.util.stream.*;
(all classes within this package) or only import java.util.stream.Stream;
(the FQDN of the class we need).