如何验证一个特定范围之间的整数列表值

时间:2017-03-22 11:30:29

标签: java arraylist selenium-webdriver

ArrayList<Integer> hLProductList = getPointsValue(
                    Utility.convertToTextList(mProductListingPage.getProductPoints()));
            logReport("hLProductList : ===== " + hLProductList);

List is displaying as hLProductList : ===== [2490, 990, 6870, 1870, 3740, 1240, 7370, 4370, 2870, 3740, 7370, 990, 2240, 3740, 7120, 3110, 1870, 2120, 3120, 8740, 930, 1870, 4370, 1240, 5620, 2620, 6240, 4620, 4990, 1870, 4120, 1240, 7120, 2120, 1870, 6990, 1620, 3110, 1610, 3240, 3870, 3120, 1870, 370, 2490, 3740, 1490, 3120]

如何在1到10000范围内验证此值列表。?

2 个答案:

答案 0 :(得分:0)

如果要检查列表中的每个元素是否在限制之间,并且您使用的是Java8,则可以执行以下操作(流方法):

if(hlProductList.stream().allMatch(x -> x>=1 && x<=10000)){
    //all in the range
}
else{
    //otherwise
}

如果您不使用Java8,请在循环中运行列表并检查每个元素:

boolean oneOutOfRange = false;
for (Integer i : hlProductList){
    if (i>10000||i<1){
        oneOutOfRange=true;
        break;
    }
   }
if (oneOutOfRange){
}

答案 1 :(得分:0)

您可以使用param Range和输出对象Result重写convertToTextList方法,如下所示:

public Range{ 
  int start;
  int end;
}
//...
public Result{
  int[] listResult;
  boolean outRange;
}

我想在convertToTextList方法中有一个循环,如果它不是null,你可以将循环的che occurency与Range参数进行比较。

所以你现在有两种方法:

Result convertToTextList(List list, Range range){
  //...do new cycle with compare if range not null
}

//old method rewriting... optimezed
int[] convertToTextList(List list){
  return convertToTextList(list, null).listResult;
}