public <E2 extends E> MutableDHashObjSetGO<E2> newMutableSet(Iterable<? extends E2> elements,
int expectedSize) {
if (elements instanceof ObjCollection) {
int size;
if (elements instanceof ObjSet) {
ObjSet elemSet = (ObjSet) elements;
if (elements instanceof SeparateKVObjDHash) {
SeparateKVObjDHash hash = (SeparateKVObjDHash) elements;
if (hash.hashConfig().equals(hashConf) &&
elemSet.equivalence().equals(getEquivalence())) {
MutableDHashObjSetGO<E2> set = uninitializedMutableSet();
set.copy(hash);
return set;
}
}
if (elemSet.equivalence().equals(getEquivalence())) {
size = elemSet.size();
} else {
size = expectedSize;
}
} else {
size = expectedSize;