如何获取Arraylist java中的真值数量

Har*_*rdy 1 java

您好我在这里新的,在Java中新的编程以及实际上我的问题是,我有类图书的数组列表中,我存储图书姓名和头衔,并通过真或假明确设置OnLoan价值,但我能够存储对于书的ArrayList真或假的价值,但我想数清我的ArrayList真正价值数说,如果已经借了3本书状态真的,我想为3我不知道怎么去,在Java中的ArrayList中算出来请大家帮我计这里是我的示例代码我通过从book类调用getOnLoanStatus()得到真正的值,该类包含true和false值

int borrowCount=0;
     Book loanStatus = new Book();
     boolean l = loanStatus.getOnLoanStatus();
     //boolean to String conversion

     System.out.println("value of l is" + l);
     if(this.booksHeld.isEmpty()) 
      {
        return null;
      }
       for(int i=0;i<this.booksHeld.size();i++)
       {
         if(booksHeld.contains(l)) // compare the isbn string with getIsbn Method
         {
             borrowCount++;
         }
       }
        if(borrowCount==0) 
        {
            return "Libray: " + numberOfBooks() + "books " +  " 0 book on Loan";
        }
        else
        {
          return "Libray: " + numberOfBooks() + "books " + borrowCount + "on Loan";
        } 
Run Code Online (Sandbox Code Playgroud)

ami*_*mit 9

您可以使用for-each循环,并检查每个元素是否被借用[假设Book有一个方法onLoanStatus()指示它是否在加载]

看起来应该是这样的:

int count = 0;
for (Book b : booksHeld) { 
  if (b.getOnLoanStatus()) count++;
}
//now count holds the number of loaned books.
Run Code Online (Sandbox Code Playgroud)


gei*_*aos 8

由于这个问题还没有 Java 8 的强制性流答案:

long count = booksHeld.stream().filter(book -> book.getOnLoanStatus()).count();
Run Code Online (Sandbox Code Playgroud)

源代码稍作修改。

直接方法:获取流,通过必须匹配布尔值 true 的谓词对其进行过滤,并为过滤器计算流中的匹配项。