code: public static <T> MutableCharCollection collectChar(
              Iterable<T> iterable,
              CharFunction<? super T> charFunction)
      {
          if (iterable instanceof MutableCollection)
          {
              return ((MutableCollection<T>) iterable).collectChar(charFunction);
          }
          if (iterable instanceof ArrayList)
          {
              return ArrayListIterate.collectChar((ArrayList<T>) iterable, charFunction);
          }
          if (iterable instanceof List)
          {
              return ListIterate.collectChar((List<T>) iterable, charFunction);
          }
          if (iterable != null)
          {
              return IterableIterate.collectChar(iterable, charFunction);
          }
          throw new IllegalArgumentException("Cannot perform a collectChar on null");
      }
docs: Returns a new {@code char} collection with the results of applying the specified charFunction for each element of the iterable.
  <p>
  Example using Java 8 lambda:
  <pre>
  MutableCharCollection chars =
  Iterate.<b>collectChar</b>(people, person -> person.getMiddleInitial());
  </pre>
  <p>
  Example using anonymous inner class:
  <pre>
  MutableCharCollection chars =
  Iterate.<b>collectChar</b>(people,
  new CharFunction&lt;Person&gt;()
  {
  public char charValueOf(Person person)
  {
  return person.getMiddleInitial();
  }
  });
  </pre>