Concat VS Merge operator
<p>I was checking the documentation of RXJava and I notice that concat and merge operators seems do the same.
I wrote a couple test to be sure.</p>

<pre><code>@Test
public void testContact() {

    Observable.concat(Observable.just("Hello"),
                      Observable.just("reactive"),
                      Observable.just("world"))
              .subscribe(System.out::println);
}

@Test
public void testMerge() {

    Observable.merge(Observable.just("Hello"),
                      Observable.just("reactive"),
                      Observable.just("world"))
            .subscribe(System.out::println);
}
</code></pre>

<p>The documentation says </p>

<blockquote>
  <p>The Merge operator is also similar. It combines the emissions of two or more Observables, but may interleave them, whereas Concat never interleaves the emissions from multiple Observables.</p>
</blockquote>

<p>But still I don't full understand, running this test thousand of times the merge result always is the same. Since the order is not granted I was expecting sometimes "reactive" "world" "hello" for example.</p>

<p>The code is here <a href="https://github.com/politrons/reactive" rel="noreferrer">https://github.com/politrons/reactive</a></p>