Ich habe eine Klasse Konstruktor wie folgt aus:Warum sind ByteBuffers hashCodes gleich?
public JavoImageCorrectedDataHeader()
{
ByteBuffer buffer = ByteBuffer.allocate(this.size());
buffer.order(java.nio.ByteOrder.LITTLE_ENDIAN);
setByteBuffer(buffer, 0);
System.out.println("buffer.hasCode=" + buffer.hashCode());
}
In meinen anderen Klassen schaffe ich viele Fälle von oben Klasse an verschiedenen Orten und Zeit durch die Verwendung
new JavoImageCorrectedDataHeader()
Dann erwartete ich es gedruckt wird aus verschiedenen hashCode für sie. aber ich sehe eigentlich das gleiche hashCode wird ausdrucken:
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
buffer.hasCode=1742602241
ich etwas vermissen müssen, wie die ByteBuffer zu verwenden.
http://docs.oracle.com/javase/1.4.2/docs/api/java/nio/ByteBuffer.html#hashCode() - 'ByteBuffer.hashCode' ist abhängig vom verbleibenden Inhalt im Puffer. – Erik
Auch wenn zwei Objekte denselben 'hashCode' haben, bedeutet das nichts über ihre Ähnlichkeit oder Gleichheit. –
@Erik beziehen Sie sich bitte nicht auf alte Dokumentation, sondern auf Java 6 oder 7. Dies ist die eigentliche Dokumentation von [ByteBuffer] (http://docs.oracle.com/javase/6/docs/api/java/nio/ ByteBuffer.html) –