title: Is my implementation against the builder pattern?
body: <p>My sample code:</p>
  
  <pre><code>class CitiesListBuilder{
      private List&lt;String&gt; cities;
  
      public static CitiesListBuilder newBuilder(){
          return new CitiesListBuilder();
      }
  
      private CitiesListBuilder(){
          cities = new ArrayList&lt;&gt;();
      }
  
      public CitiesListBuilder addCity(String city) {
          cities.add(city);
          return this;
      }
  
      public CitiesListBuilder apply(Function&lt;List&lt;String&gt;, List&lt;String&gt;&gt; filter) {
          cities = cities.apply(filter);
          return this;
      }
  
      public List&lt;String&gt; build(){
          return cities;
      }
  }
  </code></pre>
  
  <p>To use:</p>
  
  <pre><code>CitiesListBuilder.newBuilder
         .addCity("LA")
         .addCity("NY")
         .apply(NorthCitiesFilterFunction) 
         .build();
  </code></pre>
  
  <p>I understand my code maybe a bad sample of using builder pattern, but to me it makes the code shorter and more clear (my own opinions), and I don't see any problem with concurrent issue. </p>
  
  <p>But to your opinions, what will be the arguments if I should/should not do the code likes this?</p>
  
  <p>Thank you.</p>