title: LiveData of a list notifies observers without calling setValue or postValue
body: <p>I have a <code>MutableLiveData</code> like this in my view model:</p>
  <pre><code>val liveData = MutableLiveData&lt;ArrayList&lt;*&gt;&gt;()‍‍‍‍‍
  </code></pre>
  <p>I add the results from an endpoint call to this <code>LiveData</code> like this:</p>
  <pre><code>liveData.value?.addAll(myList)
  </code></pre>
  <p>as far as I know, <code>MutableLiveData</code> shouldn't notify it's <code>Observer</code>s unless you do a <code>setValue</code> or <code>postValue</code> on it but at this point when my code is run, <code>Observer</code>s are notified of the change.</p>
  <p>How is this possible?</p>
  <hr />
  <h3>Update:</h3>
  <p>I came across an even more stranger behavior, this test passes but the list gets printed one time: <code>[]</code></p>
  <pre><code>    @Test
      fun `strange live data behavior`() {
          val myLiveData = MutableLiveData&lt;ArrayList&lt;Int&gt;&gt;()
          val observer = mock() as Observer&lt;ArrayList&lt;Int&gt;&gt;
          myLiveData.observeForever(observer)
          myLiveData.observeForever { println(it) }
          myLiveData.value = ArrayList()
          verify(observer).onChanged(ArrayList())
          myLiveData.value?.addAll(listOf(1, 2, 3, 4))
          val result = ArrayList&lt;Int&gt;()
          result.add(1)
          result.add(2)
          result.add(3)
          result.add(4)
          verify(observer).onChanged(result)
      }
  
  </code></pre>