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范围内验证此值列表。?
答案 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;
}