# Java Tutorial: Testing Equality of Two Hashmaps

,

Last time we wrote a function “combo” computes all possible pairs of numbers from a range of numbers 1 to n. See: Java Tutorial: A Combinatorics Function.

However, there's a more efficient algorithm. So we implemented that as the “combo2” function below.

Now, the functions “combo” and “combo2” each returns a HashMap. We want to make sure they returns the same thing with the same input. So, in this example, we write a code that tests if two HashMap are equal.

```import java.util.*;

public class comb {
static HashMap combo (int n) {
HashMap result = new HashMap(100);

for (int j=1; j < n; j++) {
for (int i=1; i <= n; i++) {
int m = ((i+j)-1) % n +1;
if (i < m){
int[] v= {i,m};
result.put(i+ ","+ m, v);
}
}
}
return result;
}

static HashMap combo2 (int n) {
HashMap result = new HashMap(100);

for (int j=1; j <= n; j++) {
for (int i=1; i < j; i++) {
int[] v= {i,j};
result.put(i+ ","+ j, v);
}
}
return result;
}

public static void main(String[] args) {
HashMap result = new HashMap(100);
HashMap result2 = new HashMap(100);
result = combo(5);
result2 = combo2(5);
if (result.keySet().equals(result2.keySet() )) {
System.out.println("keySet equal: yea");
} else{
System.out.println("keySet equal: na");
}

if (result.equals(result2 )) {
System.out.println("HashMap equal: yea");
} else{
System.out.println("HashMap equal: na");
}

System.out.println(result.toString());
System.out.println(result2.toString());
}
}```

The interesting line is

`if (result.keySet().equals(result2.keySet() ))`

In our case, the keys are strings of the from `"i,j"`, and their values are arrays of int `{i,j}`.

the “keySet()” method returns all the keys of the HashMap.

In Java, to compare a HashMap to another, one can use the method “equals()”. However, if we say:

`if (result.equals(result2))`

that won't work, because apparently Java's arrays cannot be tested for equality without writing a customized code.

in another day, we'll have to investigate how to test the equality of two HashMaps whose values are arrays…