如何查找对象基于ArrayList中的某个属性并编辑该对象

时间:2014-01-29 11:01:38

标签: java object arraylist attributes

标题说。是否在ArrayList中根据某个属性查找对象,然后编辑该对象的不同属性。 例如:

MyList.Find( Attribute ).edit(something in attribute)

3 个答案:

答案 0 :(得分:0)

不在本机Java类中。

您需要一个支持此功能的库,或者您自己编写它。

我建议使用一个返回第一个匹配的简单方法:

public static CustomObject findFirstByXxx(List<CustomObject> list, Object xxx) {
    for(CustomObject o : list) {
        if(o.getXxx().equals(xxx) {
            return o;
        }
    }

    return null;
}

您还可以尝试使用反射来创建要搜索变量的属性。

答案 1 :(得分:0)

遍历列表,直到找到具有所需属性的对象。现在你有了这个对象。将对象的setter用于其他字段。

您可能需要考虑将对象存储在Map而不是List中。

答案 2 :(得分:0)

使用binarySearch方法。

样品:

int index = Collections.binarySearch(array, Object, new Comparator<Object>() {
    public int compare(Object o1, Object o2) {
        if (o1.getProperty().equals(o2.getProperty()))
        return 0;

    return -1;
    }
});