Object[] one = new Object[] {"string", 'a', 1}; Object[] two = new Object[] {"string2", 'b', 2}; Object[] three = new Object[] {'c', 3, "string3"}; Comparing Object one to Object two: one[0] holds a String two[0] holds a String one[1] holds a Charecter two[1] holds a Charecter one[2] holds a Integer two[2] holds a Integer All value types match there for Object array one is equal to Object array two Comparing Object two to Object three: two[0] holds a String \ = Already the Object value types are not the same - these Objects are different. This is what my method needs to check for. three[0] holds a Charecter / two[1] holds a Charecter \ = Object two holds a Charecter at key 1 and Object three holds a Integer at key 1 so the value types are different. I need to check for this. three[1] holds a Integer / etc...