From a6a1f8ba98f3d05771e22277a7f831b5798c98bd Mon Sep 17 00:00:00 2001 From: Joel Dice Date: Thu, 15 Nov 2007 11:53:01 -0700 Subject: [PATCH] make ByteBuffer implement Comparable --- classpath/java/nio/ByteBuffer.java | 18 +++++++++++++++++- 1 file changed, 17 insertions(+), 1 deletion(-) diff --git a/classpath/java/nio/ByteBuffer.java b/classpath/java/nio/ByteBuffer.java index 49bf9cd98d..52e8a32795 100644 --- a/classpath/java/nio/ByteBuffer.java +++ b/classpath/java/nio/ByteBuffer.java @@ -1,6 +1,6 @@ package java.nio; -public class ByteBuffer { +public class ByteBuffer implements Comparable { private final byte[] array; private int arrayOffset; private int capacity; @@ -25,6 +25,22 @@ public class ByteBuffer { position = 0; } + public int compareTo(ByteBuffer o) { + int end = (remaining() < o.remaining() ? remaining() : o.remaining()); + + for (int i = 0; i < end; ++i) { + int d = get(position + i) - o.get(o.position + i); + if (d != 0) { + return d; + } + } + return remaining() - o.remaining(); + } + + public boolean equals(Object o) { + return o instanceof ByteBuffer && compareTo((ByteBuffer) o) == 0; + } + public byte[] array() { return array; }