public boolean containsAll(@NotNull UnsafeWeakList<T> other, @NotNull Predicate<? super T> allowEntity) {
    List<MyReference<T>> myList = this.myList;
    List<MyReference<T>> otherList = other.myList;
    if (otherList.isEmpty()) {
      return true;
    }
    for (MyReference<T> otherReference : otherList) {
      T t = SoftReference.dereference(otherReference);
      if (t != null
          && allowEntity.test(t)
          && !myList.contains(otherReference)) {
        return false;
      }
    }
    return true;
  }
public boolean containsAll(@NotNull UnsafeWeakList<T> other, @NotNull Predicate<? super T> allowEntity)