2012-06-17 8 views
21

tengo el siguiente código:new ArrayList <int>() en su ausencia en Java

List<int> intList = new ArrayList<int>(); 
for (int index = 0; index < ints.length; index++) 
{ 
    intList.add(ints[index]); 
} 

Me da un error ...

Syntax error on token "int", Dimensions expected after this token 

El error se produce en la línea que comienza con List. ¿Alguien puede explicar por qué estoy recibiendo el error?

Respuesta

41

genéricos en Java se not applicable a tipos primitivos como enint. Que es mejor usar the wrapper types como en Integer:

List<Integer> ints = ... 

Y, para acceder a una List, es necesario utilizar ints.get(index)

4

debe usar Integer en lugar de int porque las listas requieren tipos de objetos no primitivos. pero aún puede agregar un elemento de tipo int a su lista de enteros

9

Solo puede usar un tipo de objeto dentro de la sección <>, mientras que está tratando de usar un tipo primitivo. Prueba esto ...

List<Integer> intList = new ArrayList<Integer>(); 

A continuación, deberá acceder a los valores usando intList.get(index) y intList.set(index,value) (y también intList.add(value) como usted está tratando de hacer)

1

Puede utilizar colecciones primitivas disponibles en Eclipse Collections. Eclipse Collections tiene List, Set, Bag y Map para todas las primitivas. Los elementos en las colecciones primitivas se mantienen como primitivos y no se lleva a cabo el boxeo.

Puede inicializar una IntList así:

MutableIntList intList = IntLists.mutable.empty(); 

Nota: Soy un contribuyente a Eclipse Colecciones.

Cuestiones relacionadas