title: What's the difference between import java.util.*; and import java.util.stream;?
body: <p>I'm using Java 8's <code>Stream</code> functionality to manipulate the contents of an array in my program:</p>
  
  <pre><code>Obstacle[] closestObstacles = Stream.generate(() -&gt; new Obstacle()).limit(8).toArray(Obstacle[]::new); // one for each line of attack
  </code></pre>
  
  <p>When I try importing <code>Stream</code> like this: <code>import java.util.*;</code> I get a "the symbol Stream cannot be resolved" error. When I instead import <code>Stream</code> like this: <code>java.util.stream;</code> things work as expected. Why does this happen? I don't use <code>Stream</code> or anything named "stream" elsewhere in my program, so I don't think it's a name conflict? </p>