Java 从Arraylist中的Arraylist获取项目
我制定了以下代码:Java 从Arraylist中的Arraylist获取项目,java,arraylist,Java,Arraylist,我制定了以下代码: Class class{ public void main(String args[]){ ArrayList<ArrayList>list = new ArrayList<>(); ArrayList<String> Stringlist1 = new ArrayList<>(); ArrayList<String> Stringlist2 = new ArrayList<>(); Stri
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");
}}
类{
public void main(字符串args[]){
ArrayList=新的ArrayList();
ArrayList Stringlist1=新的ArrayList();
ArrayList Stringlist2=新的ArrayList();
Stringlist1.添加(“A”);
Stringlist1.添加(“C”);
Stringlist1.添加(“B”);
Stringlist2.添加(“tr”);
Stringlist2.添加(“rgd”);
Stringlist2.添加(“sg”);
}}
我想从内部列表中获取项目,如:
for(ArrayList<String> ArrList: list){
ArrList.get(0)
}
for(ArrayList ArrList:list){
ArrList.get(0)
}
请告诉我怎么做 ArrayList list=new ArrayList();
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
}
}
ArrayList stringlist1=新的ArrayList();
ArrayList stringlist2=新的ArrayList();
列表。添加(stringlist1);
列表。添加(stringlist2);
stringlist1.添加(“A”);
stringlist1.添加(“C”);
stringlist1.添加(“B”);
stringlist2.添加(“tr”);
stringlist2.添加(“rgd”);
stringlist2.添加(“sg”);
对于(ArrayList arrList:list){
for(字符串str:arrList){
//做点什么
}
}
您可以尝试以下方法:
ArrayList<ArrayList<String>>list = new ArrayList<>();
//add items to StringLists
list.add(Stringlist1);
list.add(Stringlist2);
//Now access elements in your for loop
ArrayList=newArrayList();
//将项目添加到字符串列表
列表。添加(Stringlist1);
列表。添加(Stringlist2);
//现在访问for循环中的元素
ArrayList list=new ArrayList();
ArrayList stringlist1=新的ArrayList();
ArrayList stringlist2=新的ArrayList();
stringlist1.添加(“A”);
stringlist1.添加(“B”);
stringlist1.添加(“C”);
stringlist2.添加(“tr”);
stringlist2.添加(“rgb”);
stringlist2.添加(“sg”);
列表。添加(stringlist1);
列表。添加(stringlist2);
//环路
System.out.println(list.get(0.get(0));
需要嵌套的for循环或for-each循环
您首先需要将子列表添加到父列表中,否则将无法访问子列表。除此之外,您的代码基本上是正确的,只是没有循环遍历每个子列表
下面的代码正是您所需要的,所以只需将其复制到主函数中即可
// 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);
}
对于初学者来说,您需要先将内部列表放到外部列表中,然后才能将它们放回外部列表。我还强烈建议学习Java命名约定,然后遵循这些约定。此外,您当前的代码无法编译。请展示一个简短但完整的程序来演示问题。
// 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);
}
[A, C, B]
A
C
B
[tr, rgd, sg]
tr
rgd
sg