code: private void prepareNext()
      {
          hasNext = false;
          while (iterator.hasNext())
          {
              next = iterator.next();
              if (predicate.test(next))
              {
                  hasNext = true;
                  break;
              }
          }
      }
docs: Prepare the next element to be returned by this iterator