@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (super.equals(obj) == false) { return false; } TermsFilter test = (TermsFilter) obj; // first check the fields before even comparing the bytes if (test.hashCode == hashCode && Arrays.equals(termsAndFields, test.termsAndFields)) { int lastOffset = termsAndFields[termsAndFields.length - 1].end; // compare offsets since we sort they must be identical if (ArrayUtil.equals(offsets, 0, test.offsets, 0, lastOffset + 1)) { // straight byte comparison since we sort they must be identical return ArrayUtil.equals(termsBytes, 0, test.termsBytes, 0, offsets[lastOffset]); } } return false; }
@Override public boolean equals(Object obj) { if (this == obj) { return true; } if (super.equals(obj) == false) { return false; } TermsFilter test = (TermsFilter) obj; // first check the fields before even comparing the bytes if (test.hashCode == hashCode && Arrays.equals(termsAndFields, test.termsAndFields)) { int lastOffset = termsAndFields[termsAndFields.length - 1].end; // compare offsets since we sort they must be identical if (ArrayUtil.equals(offsets, 0, test.offsets, 0, lastOffset + 1)) { // straight byte comparison since we sort they must be identical return ArrayUtil.equals(termsBytes, 0, test.termsBytes, 0, offsets[lastOffset]); } } return false; }