tup*_*kur 5 java list conditional-statements java-stream
我正在使用这种方法:
public boolean checkRowsFilterNameBy(String filter){
    waitForElmContainsText(searchButton, "Search");
    List<AuditRow> listRows = auditTable.getTable();
    for(AuditRow row : listRows){
        if(!row.nameStr.equals(filter)||!row.nameStr.contains(filter))
            return false;
    }
    return true;
}
并且我希望能够使用Stream进行更改,我尝试了以下操作,但是我缺少了一些东西:
listRows.stream().forEach(auditRow -> {
           if(auditRow.actionStr.equals(filter))return true;} else return false;);
但我遇到一个错误。
你可以这样做,
listRows.stream().allMatch(row -> row.nameStr.equals(filter) && row.nameStr.contains(filter));
更新
根据 Holgers 的建议,这可以进一步简化为这样。
listRows.stream().allMatch(row -> row.nameStr.contains(filter));
equals或 的使用contains可能会根据您的上下文而有所不同。