【问题标题】:Best way to search for specific attribute of Object搜索对象特定属性的最佳方法
【发布时间】:2014-01-20 18:40:30
【问题描述】:

我有一个对象列表,例如

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

//

List<Foo> list;

现在我想搜索例如所有对象,其中 String str 等于 someString 什么是最好的归档方式?当然,我可以遍历整个列表并将每个对象与我的搜索字符串(或搜索整数,或我正在寻找的任何东西)进行比较,但我想知道是否有一个现成的解决方案(在我看来,基本的任务)例如在 Collection-Framework 中还是在其他地方?

【问题讨论】:

    标签: java list search


    【解决方案1】:

    【讨论】:

      【解决方案2】:

      如果你想使用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());
      

      而且您不需要 3rd 方库:)

      【讨论】:

        猜你喜欢
        • 2017-02-27
        • 2015-04-19
        • 2019-03-10
        • 2012-12-22
        • 2013-06-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-11-12
        相关资源
        最近更新 更多