Sobrecarga de método equivalente por que necessário?

Pesquisei alguns códigos JAVA criados pelo Google e encontrei o ImmutableSet:http://google-collections.googlecode.com/svn/trunk/javadoc/com/google/common/collect/ImmutableSet.html

Eles implementaram o método of () de várias outras maneiras:

public static <E> ImmutableSet<E> of(E e1, E e2);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3, E e4);
public static <E> ImmutableSet<E> of(E e1, E e2, E e3, E e4, E e5);
public static <E> ImmutableSet<E> of(E... elements);

Eu verifiquei a implementação que está aqui:https://code.google.com/p/google-collections/source/browse/trunk/src/com/google/common/collect/ImmutableSet.java

Existe um método de criação com a seguinte assinatura:

private static <E> ImmutableSet<E> create(E... elements)

que envolve o

private static <E> ImmutableSet<E> create(Iterable<? extends E> iterable, int count);

método. Os métodos públicos apenas passam os parâmetros para o método assinado (elementos E ...) que finalmente chama o outro método de criação.

Eu acho que o público de métodos com contagem fixa de parâmetros é desnecessário, pois temos o método of (E ... elements).

Minha pergunta é: por que eles fizeram isso assim? Atuação? Ou é um padrão?

Obrigado.

questionAnswers(3)

yourAnswerToTheQuestion