¿Cuál es la razón por la cual Java no nos permite hacer private T[] elements = new T[initialCapacity]; Podría entender que .NET no nos permitió hacer eso, ya que en .NET tiene tipos de valor que en tiempo de ejecución pueden tener diferentes tamaños, pero en Java todo tipo de T serán referencias...