简体   繁体   English

从Arraylist中的Arraylist中获取项目

[英]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. 需要嵌套的for循环或for每个循环。

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. 下面的代码完全满足您的需求,因此只需将其复制到您的main函数中即可使用。

// 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

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

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