< prev index next >

src/java.base/share/classes/java/nio/X-Buffer.java.template

Print this page

        

*** 1351,1360 **** --- 1351,1392 ---- #else[floatingPointType] return $Fulltype$.compare(x, y); #end[floatingPointType] } + /** + * Finds and returns the relative index of the first mismatch between this + * buffer and a given buffer. The index is relative to the + * {@link #position() position} of each buffer and will be in the range of + * 0 (inclusive) up to the smaller of the {@link #remaining() remaining} + * elements in each buffer (exclusive). + * + * <p> If the two buffers share a common prefix then the returned index is + * the length of the common prefix and it follows that there is a mismatch + * between the two buffers at that index within the respective buffers. + * If one buffer is a proper prefix of the other then the returned index is + * the smaller of the remaining elements in each buffer, and it follows that + * the index is only valid for the buffer with the larger number of + * remaining elements. + * Otherwise, there is no mismatch. + * + * @param that + * The byte buffer to be tested for a mismatch with this buffer + * + * @return The relative index of the first mismatch between this and the + * given buffer, otherwise -1 if no mismatch. + * + * @since 11 + */ + public int mismatch($Type$Buffer that) { + int length = Math.min(this.remaining(), that.remaining()); + int r = BufferMismatch.mismatch(this, this.position(), + that, that.position(), + length); + return (r == -1 && this.remaining() != that.remaining()) ? length : r; + } + // -- Other char stuff -- #if[char] /**
< prev index next >