title: Why is filteredList empty even though I update it in the thread?
body: <p>I am performing a background operation in a background thread in android, like so:  </p>
  
  <pre><code>switch (position) {   
  
      final List&lt;Profile&gt; filteredList = new ArrayList&lt;&gt;(0);
      case BELATED:
              Runnable belatedRunnable = new Runnable() {
                  @Override
                  public void run() {
                      for (Profile profile : allBirthdayProfiles) {
                          String birthday = profile.getBirthday();
  
                          String[] values = birthday.split("-");
                          int day = Integer.parseInt(values[0]);
                          int month = Integer.parseInt(values[1]);
  
                          SimpleDateFormat formatter = new SimpleDateFormat("dd-MM-yyyy");
                          Calendar calendar = Calendar.getInstance();
                          String currentDate = formatter.format(calendar.getTime());
                          String[] currentDateValues = currentDate.split("-");
                          int currentDay = Integer.parseInt(currentDateValues[0]);
                          int currentMonth = Integer.parseInt(currentDateValues[1]);
  
                          if (month &lt; currentMonth)
                              filteredList.add(profile);
                          else if (month == currentMonth &amp;&amp; day &lt; currentDay)
                              filteredList.add(profile);
                              Log.d(TAG, filteredList + "   IN THREAD");
                      }
                  }
              };
              Thread belatedThread = new Thread(belatedRunnable);
              belatedThread.setName("FilterBelatedThread");
              belatedThread.start();
              break;
  
          default:
              return allBirthdayProfiles;
      }
      Log.d(TAG, filteredList + "    END RESULT");
      return filteredList;
  }
  </code></pre>
  
  <p>The <code>List&lt;Profile&gt; filteredList</code> should be modified as the thread runs due to the code appending profiles to the filtered list (<code>filteredList.add(profile</code>).</p>
  
  <p>Outside of this switch statement I return the filteredList which in theory should be non null due to an <code>if</code> statement being ran (conditions met), however filteredList is empty.</p>
  
  <pre><code>D/BirthdayFilter: []    END RESULT
  D/BirthdayFilter: [{"birthday":"02-08-2016","favouriteIds":["62InvCZG9jaEmUNiJsssTIjImqY2"],"firstName":"Edal","friendIds":["62InvCZG9jaEmUNiJsssTIjImqY2"],"lastName":"Grunt","userId":"62InvCZG9jaEmUNiJsssTIjImqY2"}]IN THREAD
  </code></pre>
  
  <p>Why is filteredList empty even though I update it in the thread?</p>