2010-11-30 14 views
20
int[] alist = new int [3]; 
alist.add("apple"); 
alist.add("banana"); 
alist.add("orange"); 

Supongamos que quiero utilizar el segundo elemento de ArrayList. ¿Cuál es la codificación para obtener la siguiente salida?Java ArrayList Index

de salida:

plátano

+9

Tu código no se compilará: lo alisto como una matriz, pero lo utilizas como una lista; esto es imposible y alist es del tipo entero; no puedes asignarle cadenas. – Ralph

Respuesta

84

Tienes ArrayList todo mal,

  • No se puede tener una matriz de enteros y asignar un valor de cadena.
  • no se puede hacer un método add() en una matriz

prefiere hacer esto:

List<String> alist = new ArrayList<String>(); 
alist.add("apple"); 
alist.add("banana"); 
alist.add("orange"); 

String value = alist.get(1); //returns the 2nd item from list, in this case "banana" 

Indexing se cuenta desde 0 a N-1 donde N es size() de lista.

15

Leer más sobre Array y ArrayList

List<String> aList = new ArrayList<String>(); 
aList.add("apple"); 
aList.add("banana"); 
aList.add("orange"); 
String result = alist.get(1); //this will retrieve banana 

Nota: Índice comienza en 0, es decir cero

4

Exactamente como matrices en todos los lenguajes similares a C. Los índices comienzan desde 0. Entonces, apple es 0, banana es 1, naranja es 2, etc.

5

Para almacenar cadenas en una matriz dinámica (add-method) no se puede definir como una matriz de enteros (int [3]). Usted debe declarar así:

ArrayList<String> alist = new ArrayList<String>(); 
alist.add("apple"); 
alist.add("banana"); 
alist.add("orange"); 

System.out.println(alist.get(1)); 
9

Utilizando el array:

String[] fruits = new String[3]; // make a 3 element array 
fruits[0]="apple"; 
fruits[1]="banana"; 
fruits[2]="orange"; 
System.out.println(fruits[1]); // output the second element 

Utilización de una lista

ArrayList<String> fruits = new ArrayList<String>(); 
fruits.add("apple"); 
fruits.add("banana"); 
fruits.add("orange"); 
System.out.println(fruits.get(1)); 
1

Así es como lo escribiría.

String[] fruit = "apple banana orange".split(" "); 
System.out.println(fruit[1]); 
+0

Tienes que ser elegante, jajaja. –

+5

No lo dice en serio, ¿verdad? ¿Por qué no escribir su primera línea como 'String [] fruit =" applesbananasorange ".replace ('s', '') .split (" ");'? La CPU debe ser utilizada, si ya hay una. – Mot

1

La gran diferencia entre las matrices primitivas & colecciones basados ​​en objetos (por ejemplo, ArrayList) es que este último puede crecer (o reducir) de forma dinámica. Las matrices primitivas tienen un tamaño fijo: una vez que las creas, su tamaño no cambia (aunque el contenido sí puede).