我无法理解CharBuffer
equals()
方法功能的具体细节。
我不明白这个“独立于他们的起始位置考虑”的短语:
两个 char 缓冲区相等当且仅当,
它们具有相同的元素类型,
它们具有相同数量的剩余元素,并且
剩余元素的两个序列,独立于它们的起始位置考虑,是逐点相等的。
我研究了这些很好的例子——更多的例子,但我不明白这个想法。
任何人都可以用不同的语言和最少的有见地的示例代码来解释吗?
特别是我觉得这很奇怪:
CharBuffer cb1 = CharBuffer.allocate(10);
cb1.put('a');
cb1.put('b');
//cb1.rewind();
System.out.println(cb1);
CharBuffer cb2 = CharBuffer.allocate(10);
cb2.put(4,'a');
cb2.put(5,'b');
//cb2.rewind();
System.out.println(cb2);
// false, uncommenting rewind() - also false
// but shall be true - "considered independently of starting positions" ?
System.out.println(cb1.equals(cb2));