简体   繁体   中英

Get items from Arraylist in Arraylist

I made this Code:

Class class{
public void main(String args[]){ 

 ArrayList<ArrayList>list = new ArrayList<>();
 ArrayList<String> Stringlist1 = new ArrayList<>();
 ArrayList<String> Stringlist2 = new ArrayList<>();
 Stringlist1.add("A");
 Stringlist1.add("C");
 Stringlist1.add("B");
 Stringlist2.add("tr");
 Stringlist2.add("rgd");
 Stringlist2.add("sg");


 }}

and i want to get the items from the inner list like:

for(ArrayList<String> ArrList: list){
 ArrList.get(0)
}

pleas tell me how to do this!

 ArrayList<ArrayList<String>> list = new ArrayList<>();
 ArrayList<String> stringlist1 = new ArrayList<>();
 ArrayList<String> stringlist2 = new ArrayList<>();
 list.add(stringlist1);
 list.add(stringlist2);
 stringlist1.add("A");
 stringlist1.add("C");
 stringlist1.add("B");
 stringlist2.add("tr");
 stringlist2.add("rgd");
 stringlist2.add("sg");
 for(ArrayList<String> arrList: list){
     for (String str : arrList) {
         // do something
     }
 }

You can try something like this:

ArrayList<ArrayList<String>>list = new ArrayList<>();

//add items to StringLists

list.add(Stringlist1);
list.add(Stringlist2);

//Now access elements in your for loop
ArrayList<ArrayList<String>> list = new ArrayList<>();

       ArrayList<String> stringlist1  = new ArrayList<>();
       ArrayList<String> stringlist2  = new ArrayList<>();

       stringlist1.add("A");
       stringlist1.add("B");
       stringlist1.add("C");

       stringlist2.add("tr");
       stringlist2.add("rgb");
       stringlist2.add("sg");

       list.add(stringlist1);
       list.add(stringlist2);

       //loop
       System.out.println(list.get(0).get(0));

A nested for loop or for each loop is required.

You first need to add the sub lists to your parent list or you are not going to have access to the sub lists. Other than that, your code is mostly correct, except for not looping through each sub list.

The below code does exactly what you need so just copy it into your main function and it will work.

// create top level list
ArrayList<ArrayList<String>> list = new ArrayList<>();

// create sub lists
ArrayList<String> stringlist1 = new ArrayList<>();
ArrayList<String> stringlist2 = new ArrayList<>();

// add both sub lists to the parent list
list.add(stringlist1);
list.add(stringlist2);

// add elements to both lists
stringlist1.add("A");
stringlist1.add("C");
stringlist1.add("B");
stringlist2.add("tr");
stringlist2.add("rgd");
stringlist2.add("sg");

// loop through the top level list (will loop twice since the 2 elements are the sub lists) 
for(ArrayList<String> array: list) {
    System.out.println(array);

    // loop through each element of each sub list
    for (String str : array)
        System.out.println(str);
}

Output:

[A, C, B]
A
C
B
[tr, rgd, sg]
tr
rgd
sg

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM