序列化后在ArrayList上调用equals方法是一个常见的问题,这是因为序列化过程会创建一个新的对象,即使两个对象的内容相同,它们在内存中的引用也是不同的。因此,在比较两个序列化后的对象时,需要使用适当的方法来比较它们的内容,而不是直接调用equals方法。
在这种情况下,可以使用Arrays.equals()方法来比较两个ArrayList的内容。这个方法会逐个比较两个ArrayList中的元素,如果所有元素都相同,则返回true,否则返回false。
例如,假设我们有两个序列化后的ArrayList对象list1和list2,可以使用以下代码来比较它们的内容:
boolean isEqual = Arrays.equals(list1.toArray(), list2.toArray());
这个方法会将两个ArrayList转换为数组,并逐个比较它们的元素。如果所有元素都相同,则返回true,否则返回false。
需要注意的是,如果ArrayList中包含自定义对象,则需要在比较时使用自定义的比较方法,而不是直接使用Arrays.equals()方法。
云+社区技术沙龙[第11期]
TVP技术夜未眠
企业创新在线学堂
“中小企业”在线学堂
原引擎
云+未来峰会
云+社区开发者大会(苏州站)
领取专属 10元无门槛券
手把手带您无忧上云