重构find()实现