在android对象列表中搜索对象属性

时间:2015-08-12 20:58:07

标签: android class arraylist

班级:

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

的类别中获取类别对象

2 个答案:

答案 0 :(得分:2)

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;
}

否则,我确信有便利库可以做这些事情。我知道下划线/ lodash是人们用来在javascript中做这样的事情的库。我不确定Java。

答案 1 :(得分:1)

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

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;
}