@Nullable
  public static PsiClassType createSimilarCollection(@Nullable PsiType collection, Project project, PsiType... itemType) {
    if (InheritanceUtil.isInheritor(collection, CommonClassNames.JAVA_UTIL_SORTED_SET)) {
      return createCollection(project, CommonClassNames.JAVA_UTIL_SORTED_SET, itemType);
    }
    if (InheritanceUtil.isInheritor(collection, CommonClassNames.JAVA_UTIL_LINKED_HASH_SET)) {
      return createCollection(project, CommonClassNames.JAVA_UTIL_LINKED_HASH_SET, itemType);
    }
    if (InheritanceUtil.isInheritor(collection, CommonClassNames.JAVA_UTIL_SET)) {
      return createCollection(project, "java.util.HashSet", itemType);
    }
    if (InheritanceUtil.isInheritor(collection, CommonClassNames.JAVA_UTIL_LINKED_LIST)) {
      return createCollection(project, CommonClassNames.JAVA_UTIL_LINKED_LIST, itemType);
    }
    if (InheritanceUtil.isInheritor(collection, CommonClassNames.JAVA_UTIL_STACK)) {
      return createCollection(project, CommonClassNames.JAVA_UTIL_STACK, itemType);
    }
    if (InheritanceUtil.isInheritor(collection, "java.util.Vector")) {
      return createCollection(project, "java.util.Vector", itemType);
    }
    if (InheritanceUtil.isInheritor(collection, CommonClassNames.JAVA_UTIL_LIST)) {
      return createCollection(project, "java.util.ArrayList", itemType);
    }
    if (InheritanceUtil.isInheritor(collection, CommonClassNames.JAVA_UTIL_QUEUE)) {
      return createCollection(project, CommonClassNames.JAVA_UTIL_LINKED_LIST, itemType);
    }

    return createCollection(project, "java.util.ArrayList", itemType);
  }
@Nullable
  public static PsiClassType createSimilarCollection(@Nullable PsiType collection, Project project, PsiType... itemType)