我想为异或链表编写Java代码。有人能建议我如何在引用之间执行异或操作吗?
我想为异或链表编写Java代码。有人能建议我如何在引用之间执行异或操作吗?
简而言之,你不能。
稍微多说一点,如果Java允许您通过引用传递变量,则Java语言不允许对这些引用进行算术运算。因此,您的异或操作将无法实现。
此外,在阅读维基百科条目时,我了解到它是传统链表实现的内存优化,仅依靠指针算术来确定下一个/上一个节点。我认为这是一种非常先进的内存优化,在像Java这样的受管内存语言中似乎并不像在非托管内存语言(例如C(++))中那样有用。
LinkedList
。 - Stephen C您可以使用一个名为sun.misc.Unsafe
的类来执行很多不安全的操作,但我必须首先说:请勿这样做。
它可以让您获取对象的地址并创建异或链接列表。 但是,请再次注意:请勿这样做。以下至少存在以下问题:
最后:请勿这样做。
如果你只是想玩一下列表,那么请在数组内部实现它(使用索引代替指针)。 这是安全的并且有效。 但是,链表是非常低效的数据结构,大多数情况下几乎无法使用。
在Java中,不可能对引用节点执行异或(XOR)操作。XOR是一种位逻辑运算符。它只能用于对二进制数字/布尔值执行操作,我们不能将Java中的内存地址强制转换为整数。