¿Cómo usar una lista de arreglos en Java?

Necesito saber si almaceno mis datos en una ArrayList y necesito obtener el valor que he almacenado en ella.

Por ejemplo: si tengo una lista de arreglos como esta

ArrayList A = new ArrayList(); A = {"Soad", "mahran"}; 

y quiero obtener cada elemento String, ¿cómo puedo hacerlo?

Intenté hacerlo con el siguiente código:

 package arraylist; import java.util.ArrayList; public class Main { public static void main(String[] args) { ArrayList S = new ArrayList(); String A = "soad "; S.add(A); S.add("A"); String F = S.toString(); System.out.println(F); String [] W = F.split(","); for(int i=0 ; i<W.length ; i++) { System.out.println(W[i]); } } } 

El siguiente fragmento muestra un ejemplo que muestra cómo obtener un elemento de una List en un índice especificado, y también cómo usar el ciclo avanzado para cada iteración a través de todos los elementos:

  import java.util.*; //... List list = new ArrayList(); list.add("Hello!"); list.add("How are you?"); System.out.println(list.get(0)); // prints "Hello!" for (String s : list) { System.out.println(s); } // prints "Hello!", "How are you?" 

Tenga en cuenta lo siguiente:

  • Se utilizan los tipos de List genérica List y ArrayList lugar del tipo Raw ArrayList .
  • Los nombres de las variables comienzan con minúsculas
  • list se declara como List , es decir, el tipo de interfaz en lugar del tipo de implementación ArrayList .

Referencias

API:

  • Tutorial de Java Collections Framework
  • class ArrayList implements List
  • interface List
    • E get(int index)
      • Devuelve el elemento en la posición especificada en esta lista.

No use tipos crudos

  • JLS 4.8 Raw Types

    El uso de tipos crudos solo se permite como concesión a la compatibilidad del código heredado. Se desaconseja encarecidamente el uso de tipos crudos en el código escrito después de la introducción de genericidad en el lenguaje de progtwigción Java. Es posible que versiones futuras del lenguaje de progtwigción Java no permitan el uso de tipos sin formato.

  • Effective Java 2nd Edition: Item 23: No use tipos crudos en el nuevo código

    Si usa tipos crudos, perderá todos los beneficios de seguridad y expresividad de los generics.

Prefiere las interfaces a las clases de implementación en las declaraciones de tipos

  • Effective Java 2nd Edition: Item 52: Referir objetos por sus interfaces

    […] debería favorecer el uso de interfaces en lugar de clases para referirse a los objetos. Si existen tipos de interfaz apropiados, entonces los parámetros, los valores de retorno, las variables y los campos deben declararse utilizando tipos de interfaz .

Convenciones de nombres

Variables: Excepto por las variables, todas las constantes de instancia, clase y clase están en mayúsculas y minúsculas con una primera letra .

Una lista es una colección ordenada de elementos. Puede agregarlos con el método add y recuperarlos con el método get (int index). También puede iterar sobre una lista, eliminar elementos, etc. Aquí hay algunos ejemplos básicos de cómo usar una lista:

 List names = new ArrayList(3); // 3 because we expect the list // to have 3 entries. If we didn't know how many entries we expected, we // could leave this empty or use a LinkedList instead names.add("Alice"); names.add("Bob"); names.add("Charlie"); System.out.println(names.get(2)); // prints "Charlie" System.out.println(names); // prints the whole list for (String name: names) { System.out.println(name); // prints the names in turn. } 

Puede obtener sus cadenas por índice ( System.out.println(S.get(0)); ) o iterar a través de él:

 for (String s : S) { System.out.println(s); } 

Para otras formas de iterar a través de una lista (y sus implicaciones), vea el tradicional bucle versus el iterador en Java .

Adicionalmente:

  • no deberías usar nombres de variables comenzando con letras mayúsculas
  • debe parametrizar su lista de arreglos: ArrayList list = new ArrayList();
  • debe familiarizarse con la extensa documentación API de Java (también conocida como Javadoc ), por ejemplo, Java 5 , Java 6

Esto debería funcionar:

 String elem = (String)S.get(0); 

Devolverá el primer elemento en el conjunto.

O

 for(int i=0 ; i 

Si usa Java 1.5 o posterior puede usar:

 List S = new ArrayList(); s.add("My text"); for (String item : S) { System.out.println(item); } 

Primero debe leer el tutorial del framework de colecciones .

Pero para responder a su pregunta, así es como debe hacerlo:

 ArrayList strings = new ArrayList(); strings.add("String1"); strings.add("String2"); // To access a specific element: System.out.println(strings.get(1)); // To loop through and print all of the elements: for (String element : strings) { System.out.println(element); } 

object get (int index) se utiliza para devolver el objeto almacenado en el índice especificado dentro de la colección invocante.

Fragmento de código :

 import java.util.*; class main { public static void main(String [] args) { ArrayList arr = new ArrayList(); arr.add("Hello!"); arr.add("Ishe"); arr.add("Watson?"); System.out.printf("%s\n",arr.get(2)); for (String s : arr) { System.out.printf("%s\n",s); } } } 

Una solución de tres líneas, pero funciona bastante bien:

 int[] source_array = {0,1,2,3,4,5,6,7,8,9,10,11}; ArrayList target_list = new ArrayList(); for(int i = 0; i < source_array.length; i++){ target_list.add(random_array[i]); } 

Java 8 introdujo la implementación predeterminada de forEach () dentro de la interfaz Iterable, puede hacerlo fácilmente mediante un enfoque declarativo.

  List values = Arrays.asList("Yasir","Shabbir","Choudhary"); values.forEach( value -> System.out.println(value)); 

Aquí está el código de la interfaz Iterable

  default void forEach(Consumer action) { Objects.requireNonNull(action); for (T t : this) { action.accept(t); } } 

Referencia

En primer lugar, deberá definir qué tipo de datos debe conservar en su lista. Como mencionó que los datos van a ser Cadena, la lista debe estar hecha de tipo Cadena.

Luego, si desea obtener todos los elementos de la lista, debe iterar sobre la lista utilizando un simple for loop o uno para cada ciclo.

 List  list = new ArrayList<>(); list.add("A"); list.add("B"); for(String s : list){ System.out.println(s); } 

Además, si desea utilizar una lista de matrices en bruto en lugar de una genérica, deberá disminuir el valor. Cuando se usa ArrayList sin procesar, todos los elementos se almacenan en forma de Objeto.

 List list = new ArrayList(); list.add("A"); list.add("B"); for(Object obj : list){ String s = (String) obj; //downcasting Object to String System.out.println(s); }