boolean (@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; }