如何获取 Java 中对象数组的校验和
How to get the checksum of an Array of object in Java
如何计算Java中对象数组的校验和,基本上是尝试从客户端向服务器发送校验和,客户端会计算arr
的校验和并发送到服务器,服务器将计算其本地数据的校验和。例如,我有以下代码:
public class Test {
public int age;
public static void main(String[] args) {
testHash();
}
public static void testHash(){
Test test1 = new Test();
Test test2 = new Test();
Test test3 = new Test();
test1.age = 23;
test2.age = 123;
test3.age = 3;
Test[] arr={test1, test2, test3};
}
}
如何得到arr
的校验和?如果客户端和服务器端的数据相同,校验和应该相同,如果客户端和服务器端的数据相同,有没有什么方法可以计算出校验和相同?
覆盖 Test
class
中的 hashCode()
public class Test {
public int age;
@Override
public int hashCode() {
return age;
}
}
先排序数组再调用Arrays.deepHashCode()
Test[] arr={test1, test2, test3};
Arrays.sort(arr, (t1,t2)-> {return t1.age - t2.age;});
int hash = Arrays.deepHashCode(arr);
您将在服务器和客户端上获得相同的结果。
如何计算Java中对象数组的校验和,基本上是尝试从客户端向服务器发送校验和,客户端会计算arr
的校验和并发送到服务器,服务器将计算其本地数据的校验和。例如,我有以下代码:
public class Test {
public int age;
public static void main(String[] args) {
testHash();
}
public static void testHash(){
Test test1 = new Test();
Test test2 = new Test();
Test test3 = new Test();
test1.age = 23;
test2.age = 123;
test3.age = 3;
Test[] arr={test1, test2, test3};
}
}
如何得到arr
的校验和?如果客户端和服务器端的数据相同,校验和应该相同,如果客户端和服务器端的数据相同,有没有什么方法可以计算出校验和相同?
覆盖 Test
class
hashCode()
public class Test {
public int age;
@Override
public int hashCode() {
return age;
}
}
先排序数组再调用Arrays.deepHashCode()
Test[] arr={test1, test2, test3};
Arrays.sort(arr, (t1,t2)-> {return t1.age - t2.age;});
int hash = Arrays.deepHashCode(arr);
您将在服务器和客户端上获得相同的结果。