int () { int h = 0; if (k1 != null) { h += strategy.hashCode(k1) ^ Objects.hashCode(v1); if (k2 != null) { h += strategy.hashCode(k2) ^ Objects.hashCode(v2); if (k3 != null) { h += strategy.hashCode(k3) ^ Objects.hashCode(v3); } } } for (int i = 0; i < data.length; i += 2) { @SuppressWarnings("unchecked") K key = (K)data[i]; if (key != null) { h += strategy.hashCode(key) ^ Objects.hashCode(data[i + 1]); } } return h; }