public static boolean addAll(final CharCollection collection, Collection<? extends Character> another) { if (collection == another) throw new IllegalArgumentException(); long maxPossibleSize = collection.sizeAsLong() + Containers.sizeAsLong(another); collection.ensureCapacity(maxPossibleSize); if (another instanceof CharCollection) { if (another instanceof InternalCharCollectionOps) { return ((InternalCharCollectionOps) another).reverseAddAllTo(collection); } else { class AddAll implements CharConsumer { boolean collectionChanged = false; @Override public void accept(char value) { collectionChanged |= collection.add(value); } } AddAll addAll = new AddAll(); ((CharCollection) another).forEach(addAll); return addAll.collectionChanged; } } else { boolean collectionChanged = false; for (Character v : another) { collectionChanged |= collection.add(v.charValue()); } return collectionChanged; } }
public static boolean addAll(final CharCollection collection, Collection<? extends Character> another) { if (collection == another) throw new IllegalArgumentException(); long maxPossibleSize = collection.sizeAsLong() + Containers.sizeAsLong(another); collection.ensureCapacity(maxPossibleSize); if (another instanceof CharCollection) { if (another instanceof InternalCharCollectionOps) { return ((InternalCharCollectionOps) another).reverseAddAllTo(collection); } else { class AddAll implements CharConsumer { boolean collectionChanged = false; @Override public void accept(char value) { collectionChanged |= collection.add(value); } } AddAll addAll = new AddAll(); ((CharCollection) another).forEach(addAll); return addAll.collectionChanged; } } else { boolean collectionChanged = false; for (Character v : another) { collectionChanged |= collection.add(v.charValue()); } return collectionChanged; } }