验证列表中是否存在对象

用户名

我需要的是:验证比较某些属性的列表中是否存在对象。

我在这里遇到了Collections和Comparator。我正在尝试使用此二进制搜索进行验证:

Collections.binarySearch(listFuncionarioObs2, formFuncionarioObsIns, formFuncionarioObsIns.objectComparator);//Binary search of an object in a List of this Object.

使用此比较器:

public int compare(FuncionarioObs func, FuncionarioObs funcToCompare) {

    int testCodigo = -1;

    if(null != func2.getCodigo()){
        testCodigo = func.getCodigo().compareTo(funcToCompare.getCodigo());
    }

    int testData = func.getData().compareTo(funcToCompare.getData());
    int testEvento = func.getEvento().compareTo(funcToCompare.getEvento());
    int testAndamento = func.getAndamento().compareTo(funcToCompare.getAndamento());

    if(testCodigo == 0 && testData == 0 && testEvento == 0 && testAndamento == 0){
        return 0;
    }else if(testData == 0 && testEvento == 0 && testAndamento == 0) {
        return 0;
    }

    return -1;

}

但是我有点迷茫,这是行不通的,而且我不知道这样做的最佳方法。有人可以帮我开灯吗?

最好的祝福,

编辑。

我正在使用以下代码在二进制搜索之前对列表进行排序:

List<FuncionarioObs> listFuncionarioObsBD = funcionarioObsDAO.getFuncionarioObsById(sigla);
Collections.sort(listFuncionarioObsBD);

排序的比较器是:

@Override
public int compareTo(FuncionarioObs func) {

        if(this.getCodigo() > func.getCodigo()){
            return 1;
        }else if(this.getCodigo() == func.getCodigo() ) {
            return 0;
        }else{
            return -1;
        }

}
黎明守护者

相比于

您的比较无法正常工作。现在,它只是比较对象的引用。您将不得不更改它以比较对象值:

@Override public int compareTo(Account aThat) {
final int BEFORE = -1;
final int EQUAL = 0;
final int AFTER = 1;

//this optimization is usually worthwhile, and can
//always be added
if (this == aThat) return EQUAL;

//primitive numbers follow this form
if (this.fAccountNumber < aThat.fAccountNumber) return BEFORE;
if (this.fAccountNumber > aThat.fAccountNumber) return AFTER;

//booleans follow this form
if (!this.fIsNewAccount && aThat.fIsNewAccount) return BEFORE;
if (this.fIsNewAccount && !aThat.fIsNewAccount) return AFTER;

.
.
.
//all comparisons have yielded equality
//verify that compareTo is consistent with equals (optional)
assert this.equals(aThat) : "compareTo inconsistent with equals.";

return EQUAL;
}

这里

寻找对象

现在是下一部分。
正如CrtlAltDelete所暗示的那样,它取决于您的列表是否已排序。
如果其升序:遍历对象,直到找到一个compareTo返回零(==成功)或一个(==失败)的对象。

对于未排序的列表,您将必须遍历所有对象以搜索返回零的对象。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

检查对象列表中是否存在对象

来自分类Dev

检查对象列表中是否存在对象属性

来自分类Dev

Powershell-验证AD中是否存在对象

来自分类Dev

验证会话数组中是否存在对象

来自分类Dev

颤动:检查列表中是否已存在对象

来自分类Dev

是否在对象中存在值的Javascript?

来自分类Dev

检查数组中是否存在对象

来自分类Dev

检查数组中是否存在对象

来自分类Dev

如何使用C#检查对象列表中是否已存在对象

来自分类Dev

检查对象树中是否存在对象路径

来自分类Dev

检查对象中是否已存在对象

来自分类Dev

检查Java中ArrayList中是否存在对象

来自分类Dev

查找数组中是否存在对象中的值

来自分类Dev

测试存储桶中是否存在对象?

来自分类Dev

检查Python中是否存在对象ID

来自分类Dev

Python:检查生成器中是否存在对象

来自分类Dev

javafx检查场景中是否存在对象

来自分类Dev

R-检查函数中是否存在对象

来自分类Dev

测试存储桶中是否存在对象?

来自分类Dev

检查Java中是否存在对象属性

来自分类Dev

检查MongoDB中是否存在对象(文档)(使用Jongo)

来自分类Dev

查找HashMap中是否已存在对象

来自分类Dev

如何判断模板中是否存在对象?

来自分类Dev

验证下拉列表中是否存在某项

来自分类Dev

验证对象中是否存在深度属性

来自分类Dev

如果对象列表中不存在对象字段,则更新对象字段?

来自分类Dev

检查是否存在对象属性

来自分类Dev

在Razor中,如何根据元素的属性检查ViewBag IEnumerable对象中是否存在对象?

来自分类Dev

根据列和某些对象的字段检查SQL表中是否存在对象