Não entendi o “array deve ser inicializado com int”. Um exemplo com long:
public class ArrayTest {
public static void main(String args[]) {
long[] meuArray = {1l, 2l, 3l};
for ( int i = 0; i < meuArray.length; i++ ) {
System.out.println(meuArray[i]);
}
}
}
humm, JM4X, agora entendi o que você tinha dito. Achei que teu problema era pra criar um array com elementos do tipo long.
Eu acredito que não tenha limite especificado pra Listas. O inconveniente é que métodos que usam/retornam o índice usam int ao invés de long. E o método size() tb. Mas se colocar mais elementos, eles são inseridos até que se tenha memória disponível (fiz um teste com arraylist e foi o que aconteceu).
O java só permite indexação de 32 bits, portanto, todos os arrays estarão limitados ao tamanho int. Isso inclui o ArrayList (talvez não o LinkedList).
Entretanto, numa lista dessas você pode ter 2.147.483.648 elementos e, se cada elemento ocupar um mísero byte, já serão necessários 2 gigas para armazenar essa lista. Com 1 int (4 bits) por elemento, 8 gigas.
Portanto, certamente seu problema não era o índice ser int, mas um erro de seu programa.
tem razão vini, o problema era que eu deveria realizar um cálculo de números grandes, e o resultado desse cálculo seria utilizado para inicializar o array[], a solução foi utilizar long nos cálculos e somente no final (que seria um numero pequeno) fazer um casting para int, assim podendo usar o resultado para inicializar o array.