正确使用toString以及与调试的联系

时间:2019-05-09 21:25:27

标签: java debugging tostring

我正在编写一个自定义线性数据结构,该结构被告知类似于日记文件系统的工作方式。它实现了在数组和列表的值之间进行插入/删除以及基于索引的数据访问的操作时间。它从本质上说是一个数组,但是每当在某个位置发生插入/删除操作而导致该数组的元素发生移位时,它都会添加一个函数,将传入的索引重定向到同一数组或同一数组中的适当索引。一个数组,用于存储插入到中间的元素。

为了保持运行时间并减少内存浪费,需要不时地重新构建整个数据结构,以便将其恢复为没有间隙或操作的原始形式。与迭代遍历所有元素的任何其他操作一样,该操作往往比其他操作更昂贵。但是,我发现我可以通过使过程自动遍历所有元素的任何方法来减少自动显式调用此操作所需的总次数。

这使我想到了问题。如果在这种情况下对toString方法的正确解释是像列出实际数组那样列出元素,那么我可能也可以将重组过程附加到toString方法上。我的问题如下:

  1. 在这种情况下,上面的解释是对toString的正确解释吗,还是toString应该揭示更多的内部结构?

  2. 假设解释正确,那么此同时重组过程是否有效地包含在toString方法中,还是该方法只能是被动的?

  3. 最后,假设它是一个有效的包含,有时会希望不进行重组,例如调试,这是因为在调试过程中,您希望能够查看这些值而不会改变结构。我可以编写一个替代方法,该方法无需重组即可生成相同的输出,但是我不知道如何指示调试器使用它。有没有办法做这样的事情?如果是的话,怎么做?

0 个答案:

没有答案