public static boolean containsAll(final CharCollection collection, Collection<?> another) { if (collection == another) return true; if (another instanceof CharCollection) { CharCollection c2 = (CharCollection) another; if (collection instanceof CharSet && c2 instanceof CharSet && collection.size() < another.size()) { return false; } if (c2 instanceof InternalCharCollectionOps) { // noinspection unchecked return ((InternalCharCollectionOps) c2).allContainingIn(collection); } return c2.forEachWhile(new CharPredicate() { @Override public boolean test(char value) { return collection.contains(value); } }); } else { for (Object o : another) { if (!collection.contains(((Character) o).charValue() )) return false; } return true; } }
public static boolean containsAll(final CharCollection collection, Collection<?> another) { if (collection == another) return true; if (another instanceof CharCollection) { CharCollection c2 = (CharCollection) another; if (collection instanceof CharSet && c2 instanceof CharSet && collection.size() < another.size()) { return false; } if (c2 instanceof InternalCharCollectionOps) { // noinspection unchecked return ((InternalCharCollectionOps) c2).allContainingIn(collection); } return c2.forEachWhile(new CharPredicate() { @Override public boolean test(char value) { return collection.contains(value); } }); } else { for (Object o : another) { if (!collection.contains(((Character) o).charValue() )) return false; } return true; } }