Does parallelStream() in java 8 guarantee the order?
<p>I'm trying to understand the behavior of <code>parallelStream()</code> in java 8. Here is my sample code.</p>

<pre><code>List&lt;Person&gt; javaProgrammers = new ArrayList&lt;Person&gt;() {
    {
        add(new Person("Elsdon", "Jaycob", "Java programmer", "male", 43, 2000));
        add(new Person("Tamsen", "Brittany", "Java programmer", "female", 33, 1500));
        add(new Person("Floyd", "Donny", "Java programmer", "male", 33, 1800));
        add(new Person("Sindy", "Jonie", "Java programmer", "female", 32, 1600));
        add(new Person("Vere", "Hervey", "Java programmer", "male", 22, 1200));
        add(new Person("Maude", "Jaimie", "Java programmer", "female", 33, 1900));
        add(new Person("Shawn", "Randall", "Java programmer", "male", 33, 2300));
        add(new Person("Jayden", "Corrina", "Java programmer", "female", 33, 1700));
        add(new Person("Palmer", "Dene", "Java programmer", "male", 33, 2000));
        add(new Person("Addison", "Pam", "Java programmer", "female", 34, 1300));
    }
};

System.out.println("Serial:" + javaProgrammers.stream().filter(person -&gt; person.age == 33).findFirst().toString());
System.out.println("Parallel:" + javaProgrammers.parallelStream().filter(person -&gt; person.age == 33).findFirst().toString());
</code></pre>

<p>Here I'm comparing <code>stream()</code> and <code>parallelStream()</code>, and I expect <code>Brittany Tamsen</code> to be return always in <code>stream()</code> call because that's the first match. But for <code>parallelStream()</code> I do not expect <code>Brittany Tamsen</code> to be returned <strong>always</strong> because it can be one of any matches, as I expect it to run in parallel. </p>

<p>But the problem is that it also returns <code>Brittany Tamsen</code> <strong>always</strong>. So it doesn't look like it runs in parallel. </p>

<p>Am I missing something here?  </p>