public function where($where)
    {
        $where = LambdaUtils::toConditionCallable($where);
        $collection = $this->newInstance();
        foreach($this as $record)
        {
            if(call_user_func($where, $record))
            {
                $collection->add($record);
            }
        }
        return $collection;
    }
public function where($where)
    {
        $where = LambdaUtils::toConditionCallable($where);
        $collection = $this->newInstance();
        foreach($this as $record)
        {
            if(call_user_func($where, $record))
            {
                $collection->add($record);
            }
        }
        return $collection;
    }
public function where ( $ where ) { $ where = LambdaUtils :: toConditionCallable ( $ where ) ; $ collection = $ this -> newInstance ( ) ; foreach ( $ this as $ record ) { if ( call_user_func ( $ where , $ record ) ) { $ collection -> add ( $ record ) ; } } return $ collection ; }
filter by condition
@param callable|array $where
@return \PerrysLambda\ArrayList
filter by condition