首页 > 解决方案 > 如何检查值是否存在于java中的列表中

问题描述

我想在 TaxList 中匹配这个值 199.04。下面是我的代码

List<BigDecimal> TaxList = new ArrayList<BigDecimal>();   

String NetP=driver.findElement(getNetPension).getAttribute("value");
float NetPension = new Float(NetP);
log.info("Value of Net Pension on screen : "+ NetPension);

if(TaxList.contains(NetPension)) 
{   
     log.info("Income tax value from the database is matching with the value on the screen");
}
else 
{
     log.warn("Both the values are different.Net pension is:" +NetPension );
}

我正在控制台中打印 TaxList

[199.04、610.72、122.12、866.52、94.56、143.48、78.28、132.6、12.9、32.03、1797.38、128.14、724.94]。即使值 199.04 存在。它转到其他部分

两者的值不同。净养老金是:199.04

标签: javalistseleniumcontains

解决方案


当调用 ArrayList 的 contains 方法时,它会equals()调用所有包含的元素。这里可能发生的情况是 BigDecimal 类的实例与浮点类型的值比较不正确。

在与 BigDecimal 进行比较时,考虑进入contains()并检查浮点值的作用。另一种可能的解决方案是自己将浮点值转换为 BigDecimal。


推荐阅读