gpt4 book ai didi

Java:通过修改作为参数传递的对象来使数据结构无效

转载 作者:行者123 更新时间:2023-11-30 02:58:31 25 4
gpt4 key购买 nike

我正在研究 AVL 树的 Java 通用实现(源代码位于 https://github.com/diningphil/AvlTreeJava ),并且我遇到了一个特定问题:如果我将 insert 方法传递给参数T key,然后在插入后修改key的字段,数据结构被破坏。

如何避免这种情况?我可以传递一个对象,要求该对象之后不能由用户修改,而是由我的 avl 树的实现修改吗?

提前致谢

最佳答案

除非数据是不可变的,否则我不知道如何完全避免它,但您可以做一些事情来分离数据。我的意思是:而不是 T extends Comparable<T>可以使用传入的比较器来设置树。

然后,客户端可以在插入后修改数据,而不会损坏树,前提是它只修改比较器中未使用的字段。这迫使客户思考他想要什么和不想修改什么,并提供了一点灵 active 。

关于Java:通过修改作为参数传递的对象来使数据结构无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36565658/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com