使用Java8 Stream计算列表中的对象数

Ner*_*909 1 java java-8 java-stream

所以我试图仅使用Stream来计算ArrayList中的对象数.我正在使用stream.count但是只返回1,因为我的列表有多个对象.这是一些代码:

 static ArrayList<Person> people = new ArrayList<>();

  void loadCourses(){ // putting Person objects in the list }

  public void countPeople()
{
    Stream<ArrayList<Person>> stream1 = Stream.of(people); 
    long l = stream1.count();
    System.out.println("Number of people loaded: " + l);

}
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏:)

Pau*_*ton 6

你使用的是a Stream<ArrayList<Person>>而不是a Stream<Person>.

你要:

long l = people.stream().count();
Run Code Online (Sandbox Code Playgroud)

你得到的1是因为只有一个ArrayList.

另请注意,您不需要流.你可以这样做people.size().