java中比较两个json数组不同的json对象并返回不同的json对象

jsonArray array1 = [{"award_number":1,"start_time":"2017-12-04 17:17:35","end_time":"2017-12-09 17:17:39"},{"award_number":2,"start_time":"2017-12-09 17:17:35","end_time":"2017-12-12 17:17:39"},{"award_number":2,"start_time":"2017-12-12 17:17:35","end_time":"2017-12-14 17:17:39"},{"award_number":3,"start_time":"2017-12-14 17:17:35","end_time":"2017-12-16 17:17:39"}]
jsonArray array2 = [{"award_number":1,"start_time":"2017-12-04 17:17:35","end_time":"2017-12-09 17:17:39"},{"award_number":2,"start_time":"2017-12-09 17:17:35","end_time":"2017-12-12 17:17:39"},{"award_number":2,"start_time":"2017-12-12 17:17:35","end_time":"2017-12-14 17:17:39"},{"award_number":3,"start_time":"2017-12-14 17:17:35","end_time":"2017-12-16 17:17:39"},{"award_number":4,"start_time":"2017-12-16 17:17:35","end_time":"2017-12-18 17:17:39"}]

首先判断award_number 是否都存在那个如果a有,b没有,则是不同。都有的话,然后再比较 start_time 再比较end_time。没问题吧

遍历第一个数组,
List list1 = Arrays.asList(t1);
List list2 = new ArrayList();
for (T t : t2) {
if (!list1.contains(t)) {
list2.add(t);
}
}

    希望对你有所帮助

构造这个类啊,比如TargetClass,在这个Class中写好静态的比较方法equals()返回bool,把json数组的数据放入这个类中可以用一个List targetList来存放这些实例。
最后写一个两个list的比较方法返回int[]数组(对应位置用你写的这个equals()去比较这两个类的实例是否相同,不相同的话就把它加入返回的int[]数组里面),这样就得到两个list集合中对应位置不相同的object了。
PS:不知道你是不是这个需求,具体代码自己去实现。

别沉啊,不错,希望有人能解析

首先判断award_number 是否都存在那个如果a有,b没有,则是不同。都有的话,然后再比较 start_time 再比较end_time。构造这个类啊,比如TargetClass,在这个Class中写好静态的比较方法equals()返回bool,把json数组的数据放入这个类中可以用一个List targetList来存放这些实例。
最后写一个两个list的比较方法返回int[]数组(对应位置用你写的这个equals()去比较这两个类的实例是否相同,不相同的话就把它加入返回的int[]数组里面),这样就得到两个list集合中对应位置不相同的object了。
PS:不知道你是不是这个需求,具体代码自己去实现。

借用楼上的回复改了一下,感觉这样可能更好
List list1 = Arrays.asList(t1);
List list2 = new ArrayList();
Iterator it = list1.iterator();
while (it.hasNext) {
t = it.next;
if (!list1.contains(t)) {
list2.add(t);
it.remove(t);
}
}

for (T t: list1) {
    list2.add(t);
}

    return list2

首先判断award_number 是否都存在那个如果a有,b没有,则是不同。都有的话,然后再比较 start_time 再比较end_time。构造这个类啊,比如TargetClass,在这个Class中写好静态的比较方法equals()返回bool,把json数组的数据放入这个类中可以用一个List targetList来存放这些实例。
最后写一个两个list的比较方法返回int[]数组(对应位置用你写的这个equals()去比较这两个类的实例是否相同,不相同的话就把它加入返回的int[]数组里面),这样就得到两个list集合中对应位置不相同的object了。
PS:不知道你是不是这个需求,具体代码自己去实现。

如上所说:字段相同,属性值不同,最简单的方法就是定义一个类,在类中的equals 定义好,类相同的条件,然后使用equals 判断就可以直接判断出不同的对象了

字段相同,属性值不同,最简单的方法就是定义一个类,在类中的equals 定义好,类相同的条件,然后使用equals 判断就可以直接判断出不同的对象了

如果只是为了确认两个json数组是否相同,可以转为字符串,然后md5加密,如果两个加密的值相同则json数组相同,否则就不同了

可以先转换成集合类,然后使用集合相关工具类过滤出相同数据和差异数据

重写equals...................................