最近在做算法题的时候发现同样是使用 HashSet,Java 的解法有效但是 c# 的解法就是错的。问题就出在 List 类型的 HashCode 的计算上。我们来看下面的 Java 和 C# 代码的输出结果:
Java 使用 HashSet 存储 int[] 以及 ArrayList:
public class ArrayHashsetTest {
public static void Run()
{
// int arrays
int[] nums1 = {
1, 2, 3};
int[] nums2 = {
1, 2, 3};
HashSet<int[]> arraySet = new HashSet<>();
arraySet.add(nums1);
arraySet.add(nums2);
System.out.println(String.format("Int arrays in hash set: %d", arraySet.size()));
// array lists
ArrayList<Integer> list1