1、需求:
list集合中有多个对象,每个对象有多个(相同)属性,判断第一个元素的第一个属性值是否等于其他元素的第一个属性值之和?
2、思路:
将第一个元素的属性放到一个数组中
将其他所有元素的属性相加放到一个数组中
比较两个数组中值是否相等
/**
* 校验 合计值是否正确
* Test是实体类
* @param tests
*/
public void verifyTestList(List<test> tests) {
List<Test> test1= new ArrayList<>();//存放合计对象
int[] arr = new int[14];
int[] totalArr = new int[14];
for (Test test: tests) {
if (test.getCode().equals("01")) {
arr[0] = test.getL01();
arr[1] = test.getL02();
arr[2] = test.getL03();
test1.add(test);
tests.remove(test);
break;
}
}
for (Test test: tests) {
totalArr [0] += test.getL01();
totalArr [1] += test.getL02();
totalArr [2] += test.getL03();
}
if (arr.length != totalArr.length) {
throw new BusinessException("合计值不正确!");
}
for (int i = 0; i < arr.length; i++) {
if (arr[i] != totalArr[i]) {
String msg;
if (i < 9) {
int j = i + 1;
msg = "0" + j;
} else {
msg = i + 1 + "";
}
throw new BusinessException("编号L" + msg + "合计值不正确!");
}
}
if (test1.size() > 0 && test1.get(0) != null) {
tests.add(test1.get(0));
}
}