搜索Object特定属性的最佳方法

时间:2014-01-20 18:40:31

标签: java list search

我有一个对象列表,例如

public class Foo {
   private String str;
   private Integer i;
   // Getter
}

//

List<Foo> list;

现在我想搜索例如String str等于someString的所有对象什么是最好的方法来实现它?当然,我可以迭代整个List并将每个Object与我的search-String(或者搜索整数,或者我正在寻找的任何东西)进行比较,但我想知道是否有一个现成的解决方案(在我看来哪里是基本的)任务)例如在Collection-Framework或其他地方?

2 个答案:

答案 0 :(得分:2)

答案 1 :(得分:1)

如果您想使用guava,您可以执行以下操作:

Foo result = Iterables.find(list, new Predicate<Foo>() {
    public boolean apply(Foo foo) { return foo.getInteger() == 3; }
});

或者在即将到来的java8中,您可以使用lambda表达式:

list.stream()
    .filter( f -> f.getInteger() == 3)
    .collect(Collectors.toList());

你不需要第三方库:)