如何在Java中获取列表的长度?

如何在Java中获取列表的长度?,java,list,Java,List,如果我有Java中的列表数据,我可以通过代码获得第一个列表的长度: int lengthData = data.get(0).size(); 但是,如何在不遍历列表列表的情况下获得结构中的列表数呢 也许我有点不清楚。我的结构如下: List<List<String>> data 将等于1,因为它是根列表。所以我想知道有多少子列表。结构的遍历如下所示: for (List<String> l : data) {

如果我有Java中的
列表
数据,我可以通过代码获得第一个列表的长度:

int lengthData = data.get(0).size();
但是,如何在不遍历列表列表的情况下获得结构中的列表数呢

也许我有点不清楚。我的结构如下:

List<List<String>> data 
将等于1,因为它是根列表。所以我想知道有多少子列表。结构的遍历如下所示:

for (List<String> l : data) {                     
     total ++;                
}
以此类推,这些是根列表的子列表。

只需使用

int listCount = data.size();
这会告诉您有多少个列表(假设没有一个是空的)。如果要找出有多少字符串,需要迭代:

int total = 0;
for (List<String> sublist : data) {
    // TODO: Null checking
    total += sublist.size();
}
// total is now the total number of strings
int-total=0;
用于(列表子列表:数据){
//TODO:空检查
总计+=子列表.size();
}
//total现在是字符串的总数
Java8

import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

public class HelloWorld{

     public static void main(String []args){
            List<List<String>> stringListList = new ArrayList<>();
            stringListList.add(Arrays.asList(new String[] {"(0,0)", "(0,1)"} ));
            stringListList.add(Arrays.asList(new String[] {"(1,0)", "(1,1)", "(1,2)"} ));
            stringListList.add(Arrays.asList(new String[] {"(2,0)", "(2,1)"} ));

            int count=stringListList.stream().mapToInt(i -> i.size()).sum();

            System.out.println("stringListList count: "+count);
     }
}
导入java.util.array;
导入java.util.List;
导入java.util.ArrayList;
公共类HelloWorld{
公共静态void main(字符串[]args){
List stringListList=新建ArrayList();
add(Arrays.asList(新字符串[]{“(0,0)”,“(0,1)”});
add(Arrays.asList(新字符串[]{“(1,0)”,“(1,1)”,“(1,2)”});
add(Arrays.asList(新字符串[]{“(2,0)”,“(2,1)”});
int count=stringListList.stream().mapToInt(i->i.size()).sum();
System.out.println(“stringListList计数:“+count”);
}
}

导入java.util.ArrayList

公共类TestClass{

public static void main(String[] args) {

    ArrayList<ArrayList<String>> listOLists = new ArrayList<ArrayList<String>>();
    ArrayList<String> List_1 = new ArrayList<String>();
    List_1.add("1");
    List_1.add("2");
    listOLists.add(List_1);

    ArrayList<String> List_2 = new ArrayList<String>();
    List_2.add("4");
    List_2.add("5");
    List_2.add("10");
    List_2.add("11");
    listOLists.add(List_2);
    for (int i = 0; i < listOLists.size(); i++) {
        System.out.print("list " + i + " :");
        for (int j = 0; j < listOLists.get(i).size(); j++) {
            System.out.print(listOLists.get(i).get(j) + " ;");
        }
        System.out.println();
    }

}
publicstaticvoidmain(字符串[]args){
ArrayList listOLists=新的ArrayList();
ArrayList_1=新的ArrayList();
清单1.添加(“1”);
清单1.添加(“2”);
添加(列表1);
ArrayList_2=新的ArrayList();
清单2.添加(“4”);
清单2.添加(“5”);
清单2.添加(“10”);
清单2.添加(“11”);
添加(列表2);
对于(int i=0;i
}

如果列表最外层列表中包含的列表的计数,我希望此解决方案能够更好地描述列表

lambda获取包含的内部列表的计数


你不能。你必须遍历,或者使用更复杂的列表来为你遍历…你不能吗?是否有那么长的一个列表真的很难遍历?如果
data.size()
返回1,那么就没有两个子列表。你有一个。这就是为什么对它进行迭代也只能得到一个结果。您所说的一切都表明您的原始数据存在问题。我怀疑如果你试图拿出一个简短但完整的程序来演示这个问题,你会发现出了什么问题。是的。这就是问题所在。现在问题已经解决了。我在发帖之前已经试过了。由于某些原因,这并没有给出正确的结果。@Morgan先生:我对此表示怀疑。请发布一个简短但完整的程序来演示这个问题。@Morgan先生,List.size()也是我所期望的。你能举个例子说明什么时候它不能产生预期的结果吗?另外,您对外部列表使用的具体实现是什么?不会起作用,因为size()方法不是getter,即不是getSize()。这意味着,例如在jsp中,我们不能做像这样简单的事情。这是一个如此大的祸根,我想知道为什么从来没有任何努力来解决这个问题。
import java.util.Arrays;
import java.util.List;
import java.util.ArrayList;

public class HelloWorld{

     public static void main(String []args){
            List<List<String>> stringListList = new ArrayList<>();
            stringListList.add(Arrays.asList(new String[] {"(0,0)", "(0,1)"} ));
            stringListList.add(Arrays.asList(new String[] {"(1,0)", "(1,1)", "(1,2)"} ));
            stringListList.add(Arrays.asList(new String[] {"(2,0)", "(2,1)"} ));

            int count=stringListList.stream().mapToInt(i -> i.size()).sum();

            System.out.println("stringListList count: "+count);
     }
}
public static void main(String[] args) {

    ArrayList<ArrayList<String>> listOLists = new ArrayList<ArrayList<String>>();
    ArrayList<String> List_1 = new ArrayList<String>();
    List_1.add("1");
    List_1.add("2");
    listOLists.add(List_1);

    ArrayList<String> List_2 = new ArrayList<String>();
    List_2.add("4");
    List_2.add("5");
    List_2.add("10");
    List_2.add("11");
    listOLists.add(List_2);
    for (int i = 0; i < listOLists.size(); i++) {
        System.out.print("list " + i + " :");
        for (int j = 0; j < listOLists.get(i).size(); j++) {
            System.out.print(listOLists.get(i).get(j) + " ;");
        }
        System.out.println();
    }

}
int count = data.size();
int count = data.stream().collect( summingInt(l -> l.size()) );