【问题标题】:Search for object property in list of objects android在对象列表中搜索对象属性android
【发布时间】:2015-11-05 15:46:06
【问题描述】:

班级:

public class Category {

    private String name;
    private String baseUnit;

    public Category() {   
    }

    public Category(String name, String baseUnit) {
        this.name = name;
        this.baseUnit = baseUnit;
    }
}

在我的代码中,我有一个类别对象列表:
List<Category> categories = new ArrayList<Category>();

我有一个字符串,例如category_1_name 但我如何在 category.name=category_1_name 所在的类别中获取类别对象?

【问题讨论】:

    标签: android class arraylist


    【解决方案1】:
    public static Category findCategory(Iterable<Category> categories, String name)
    {
        for(Category cat : categories) //assume categories isn't null.
        {
            if(name.equals(cat.name)) //assumes name isn't null.
            {
                return cat;
            }
        }
    
        return null;
    }
    

    否则,我确信有方便的库来做这些事情。我知道 underscore/lodash 是人们用来在 javascript 中执行此类操作的库。我不确定Java。

    【讨论】:

      【解决方案2】:

      不幸的是,没有像 C# 的 LINQ 这样的内置功能,但一个简单的方法就足够了:

      static Category findCategoryByName(ArrayList<Category> categories, String name) 
      {
          if(categories == null 
              || name == null
              || name.length() == 0) 
              return null;
      
          Category result = null;
      
          for(Category c : categories) {
              if(!c.getName().equals(name))
                  continue;
      
              result = c;
              break;
          }
      
          return result;
      }
      

      【讨论】:

        猜你喜欢
        • 2017-06-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-03-09
        • 2019-03-10
        相关资源
        最近更新 更多