当前位置: 首页 > 面试题库 >

Java中的toString覆盖

叶茂
2023-03-14
问题内容

这个问题来自一个作业。我必须在创建循环链接列表的类中重写toString()方法,而实际上我的toString()方法效果很好,它通过了我所有的测试。因此,我的项目是自动分级的,显然它不是100%赞成我的方法。所以我的问题是:有没有更好的方法来编写此toString()方法,这样会更有效?

public String toString()
    {
        if (size == 0)
        {
            return "[]";
        }
        else
        {
            String output = "";
            Node<E> tempNode = actualElement;
            while (tempNode.next() != actualElement)
            {
                if (output.equals(""))
                {
                    output = "[" + output + tempNode.data().toString();
                    tempNode = tempNode.next();
                }
                else
                {
                    output = output + ", " + tempNode.data().toString();
                    tempNode = tempNode.next();
                }

            }
            output = output + ", " + tempNode.data().toString() + "]";
            return output;
        }

如果我需要详细说明类结构,以便更有意义,请告诉我。


问题答案:

使用StringBuilder。

StringBuilder builder = new StringBuilder();
builder.append("some text");
builder.append("more text");
return builder.toString();


 类似资料:
  • 问题内容: 我想为Java中的ArrayList拥有toString()方法的自己的实现。但是,即使我将这样的toString()添加到包含ArrayList的类中,我也无法正常工作。 当我这样调用ArrayList时,我仍然会获得默认表示形式。我想念什么吗? 问题答案: 你应该做类似的事情 并将列表作为参数传递给。您 可以从 技术上扩展(使用匿名类或具体类)并实现自己,但这在这里似乎是不必要的。

  • 问题内容: 我需要方法方面的帮助,这非常令人讨厌。我尝试在线查找,因为那是一个正在搞砸的地方,即使在那里,它也“找不到2号Kid构造函数”,我什至会做其他事情,但它不起作用。好了,所以这是我的代码: 好的,所以我上面的toString(我知道,我的第三个参数已关闭,应该是String)已关闭。如果我在第三件事中硬编码一个值,它就会变成麻烦,并说找不到它(上面)。那么如何获取日期并将其拆分呢? 调用

  • 我有一个处理M×N矩阵的简单程序。当完成处理后,我想打印出标准输出的矩阵。我知道我可以写一些方法比如static[void/String]matrix print(int[][]my matrix)来打印出矩阵或者返回它的字符串表示。 然而,我认为一个更优雅的解决方案是覆盖数组类中的toString()方法。这样我就可以调用System.out.println(myMatrix),在我看来,它比上

  • 问题内容: 在Java中是否可以覆盖Objects数组的toString? 例如,假设我创建了一个简单的类(由于这是一个普遍的问题,所以实际上是哪个类并不重要)。客户端一旦创建了一个数组并使用了它,是否有可能不打印该数组的地址,而是打印一个定制的? PS:当然,我不能只在类中重写它,因为它与单个实例有关。 问题答案: 不会。您当然可以创建一个静态方法User.toString(User []),但

  • 我这样做对吗?我生成了toString()。

  • 问题内容: 我已经尝试解决了几个小时,但是找不到有效的答案。 为了完整起见,我在下面发布了整个代码。如果不重写toString方法,则将获得对象哈希码的表示形式。 我尝试使用以下内容: 但是,这似乎无济于事,因为我仍然获得了对哈希码的引用。我知道这是因为我没有正确覆盖toString方法;包含@Override批注时出现错误,但据我所知。 我查看了其他一些回答,这些回答说,在列表/集合的情况下,重