/ / cómo obtener valor de la lista de arrays 2d - java, arraylist

cómo obtener valor de 2d arraylist - java, arraylist

Tengo arraylists llamados sub y main,

ArrayList main = new ArrayList();

ArrayList sub=new ArrayList();

agrego valor a sub y luego agrego sub a main.

ejemplo;

 sub.add(1);
sub.add(2);
main.add(sub);

ahora quiero obtener todos los valores dentro de sub

 so i used following one but .get(j) gives me the error get >> canot find symbol

for (int i=0;i<main.size();i++) {
System.out.println();

for (int j=0;j<sub().size();j++) {
System.out.print(main.get(i).get(j));//error line
}
}

¿Cómo puedo obtener todos los valores dentro del subconjunto de la lista principal?

Respuestas

3 para la respuesta № 1

Cuando declaras una variable como

ArrayList main;

Esta lista contiene Objects. Esto significa que main.get(i) solo devolverá un Object, incluso si agrega ArrayLists. Es por eso que obtienes un error de compilación: Object no tiene un método llamado get().

Para solucionar el problema, debe usar genéricos:

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

ArrayList<Integer> sub=new ArrayList<>();

Ahora get() devolverá un List<Integer> que tiene un get() método, por lo que el error del compilador desaparecerá.


2 para la respuesta № 2

Los genéricos podrían ser tu amigo aquí:

ArrayList<ArrayList<Object>> main = new ArrayList<ArrayList<Object>>(); // or new ArrayList<>(); in Java 7+
ArrayList<Object> sub = new ArrayList<Object>(); // or new ArrayList<>();

Si no puede "t o don" no quiere usar genéricos, la solución es emitir la expresión main.get(i) a una ArrayList primero:

System.out.println(((ArrayList) main.get(i)).get(j));

1 para la respuesta № 3

Ir a través del siguiente código

public class ArrayListDemo {

public static void main(String[] args) {

List<List<Integer>> main = new ArrayList<>();
List<Integer> sub = new ArrayList<>();

sub.add(1);
sub.add(2);
main.add(sub);

//If you want to get values in sub array list
for(int i = 0; i < 1; i++){
List<Integer> arr = main.get(i);
for(Integer val : arr) System.out.println(val + "");
}

//If you want to print all values
for(List<Integer> list : main){
for(Integer val : list) System.out.println(val + "");
}

}

}

En el código anterior, había declarado una ArrayList(principal) para mantener todas las matrices que tienen valores enteros. También había declarado otra ArrayList (sub) para mantener todos los valores Integer. Había utilizado la estructura de datos de ArrayList debido a que la longitud de la Lista cambiará el tiempo de ejecución

Buena suerte !!!