Java中有什么简单的办法实现,一个list的两条数据每一项做大小对比?

  • 两个表字段基本一样A,B,要从一个表A里面取出8号的数据,从表B中去除7号的数据,做对比。
  • 8号的所有数据项都要大于等于7号的,我就把A表中8号的数据同步成B表中8号数据。
  • 那你这8号数据和7号数据量一样,一共加起来2条,就这两个做对比。图片说明

类似这样的,单个变量对比大小。
路过的大佬,求赐教。

用的如下代码实现了,谢谢大家。

    public static boolean reflect(List<Test> tests) throws Exception {
        Test test01 = tests.get(0);
        Test test02 = tests.get(1);

        Class cls = test01.getClass();
        Field[] fields = cls.getDeclaredFields();
        for (int i = 0; i < fields.length; i++) {
            Field f = fields[i];
            f.setAccessible(true);
            System.out.println("属性名:" + f.getName() + " 属性值:" + f.get(test01));
            System.out.println("属性名:" + f.getName() + " 属性值:" + f.get(test02));
            boolean b = compareData(new BigDecimal(f.get(test01).toString()), new BigDecimal(f.get(test02).toString()));
            System.out.println(b);
            if (!b){
                return b;
            }
        }
        return true;
    }

    private static boolean compareData(BigDecimal data01,BigDecimal data02){
        if (data01.compareTo(data02) == -1){
            return false;
        }
        return true;
    }

setA01~setA07是写死的么?还是可以变化的,可以变化的需要用反射
https://blog.csdn.net/weixin_39800144/article/details/79012369

没太理解,是要重写Comparator接口中的compare()方法这种?

你确定你要的是这样吗
感觉怪怪的。不太理解你的意思。
不可以用list取差集这样来判断吗
List reduce1 = list1.stream().filter(item -> !list2.contains(item)).collect(toList());

你看看是不是这个意思:

import java.util.ArrayList;
import java.util.List;

public class Test {

    public static void main(String[] args) {
        List<User> list1 = new ArrayList();
        List<User> list2 = new ArrayList();
                // 最好list1和list2的size是相同的,否则不能满足你上面表述的对应相比较
        for (int i = 0; i < list1.size() && i < list2.size(); i++) {// 这里限制不要下标越界
            User u1 = list1.get(i);// 获取list1的元素
            User u2 = list2.get(i);// 获取list2的元素
                        // TODO 你要做的对比及其他逻辑。。。。。
        }
    }
}