title: RX+Retrofit filtring data from server Response
body: <p><strong>how to use RxJava Function .filter()</strong> for particular condition, i want
  just only data which id is  168 ,
  is this right way to do or have to change my code style give me your valuable suggestion. (Without RetroLambda use :))</p>
  
  <pre><code> NetworkRequest networkRequest = new NetworkRequest(this);
   RestApi api = networkRequest.getInstance().create(RestApi.class);
  
      subscription = api
              .school()
              .subscribeOn(Schedulers.io())
              .observeOn(AndroidSchedulers.mainThread())
              .subscribe(new Subscriber&lt;Response&lt;SchoolList&gt;&gt;() {
                  @Override
                  public void onCompleted() {
                      Log.d(TAG, "onCompleted: completed");
                  }
  
                  @Override
                  public void onError(Throwable e) {
                      Log.d(TAG, "onError: on Error");
                      e.printStackTrace();
                  }
  
                  @Override
                  public void onNext(Response&lt;SchoolList&gt; schoolResponse) {
  
                      Log.d(TAG, "onNext: " + schoolResponse.getSchoolList().size());
                  }
              });
  </code></pre>
  
  <blockquote>
    <p>i have response like </p>
  </blockquote>
  
  <pre><code>{ "schoolList": [
   {
    "name": "A University",
  
      "id": "168"
   },
   {
    "name": "Alba Sciences",
    "id": "271"
   },
   {
    "name": "B University",
  
      "id": "168"
   }]
  }
  </code></pre>
  
  <blockquote>
    <p>i have try this way but getting noting in  (On Next)</p>
  </blockquote>
  
  <pre><code> NetworkRequest networkRequest = new NetworkRequest(this);
   RestApi api = networkRequest.getInstance().create(RestApi.class);
  
      subscription = api
              .school()
              .filter(new Func1&lt;Response&lt;SchoolList&gt;, Boolean&gt;() {
                  @Override
                  public Boolean call(Response&lt;SchoolList&gt; schoolListResponse) {
                      Log.d(TAG, "condition: computing 2");
                      return schoolListResponse.getSchoolList().get(0).getId().equals("168");
                  }
              })
              .subscribeOn(Schedulers.computation())
              .observeOn(AndroidSchedulers.mainThread())
              .subscribe(new Subscriber&lt;Response&lt;SchoolList&gt;&gt;() {
                  @Override
                  public void onCompleted() {
                      Log.d(TAG, "onCompleted: completed");
                  }
  
                  @Override
                  public void onError(Throwable e) {
                      Log.d(TAG, "onError: on Error");
                      e.printStackTrace();
                  }
  
                  @Override
                  public void onNext(Response&lt;SchoolList&gt; schoolResponse) {
  
                      Log.d(TAG, "onNext: " + schoolResponse.getSchoolList().size());
                  }
              });
  </code></pre>