2014-01-20 5 views
0

나는 개체 목록을 가지고 있습니다.개체의 특정 특성을 검색하는 가장 좋은 방법입니다.

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

// 

List<Foo> list; 

이제 예를 들어 검색하고 싶습니다. String str이 someString 인 모든 Object를 성취하는 가장 좋은 방법은 무엇입니까? 물론 전체 목록 및 검색 문자열 (또는 search-Integer, 또는 내가 찾는 모든 항목)을 모든 개체와 비교할 수 있지만 여기에는 기본 솔루션이 있는지 궁금하다 (제 의견으로는 기본 작업) 예. 컬렉션 프레임 워크 또는 다른 곳에서?

답변

1

:


또는 향후에

Foo result = Iterables.find(list, new Predicate<Foo>() { 
    public boolean apply(Foo foo) { return foo.getInteger() == 3; } 
}); 
java8 람다 식을 사용할 수 있습니다.

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

그리고 타사 라이브러리가 필요하지 않습니다.

관련 문제