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

Posted

技术标签:

【中文标题】在对象列表中搜索对象属性android【英文标题】:Search for object property in list of objects 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 所在的类别中获取类别对象?

【问题讨论】:

【参考方案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;

【讨论】:

以上是关于在对象列表中搜索对象属性android的主要内容,如果未能解决你的问题,请参考以下文章

在对象的 NSArray 中搜索与任何属性匹配的字符串

使用 Linq 搜索值是不是存在于对象列表中

如何在 Java 对象列表中搜索

如何在 json 对象的列表视图中搜索?

如何在具有多个字符串的数组列表中搜索对象并返回对象?

在 Java 中的对象列表中搜索字段 [重复]