docs: public synchronized ArrayList<V> removeAll(@Nullable Predicate<K> predicate) {
      ArrayList<V> oldValues = new ArrayList<>();
      Iterator<LinkedHashMap.Entry<K, V>> iterator = mMap.entrySet().iterator();
      while (iterator.hasNext()) {
        LinkedHashMap.Entry<K, V> entry = iterator.next();
        if (predicate == null || predicate.apply(entry.getKey())) {
          oldValues.add(entry.getValue());
          mSizeInBytes -= getValueSizeInBytes(entry.getValue());
          iterator.remove();
        }
      }
      return oldValues;
    }