Java-toString不';无法正确打印阵列

Java-toString不';无法正确打印阵列,java,arrays,tostring,Java,Arrays,Tostring,Java问题 我想用to String方法打印一个数组, 但我得到的只是: fifo.Fifo@2a139a55 fifo.Fifo@15db9742 我知道这指向了保存数组的位置, 但是我如何用toStinr方法打印出数组呢 import java.util.ArrayList; public class Fifo { private ArrayList <Object> list; public Fifo() { this.list = n

Java问题

我想用to String方法打印一个数组, 但我得到的只是:

fifo.Fifo@2a139a55
fifo.Fifo@15db9742
我知道这指向了保存数组的位置, 但是我如何用toStinr方法打印出数组呢

import java.util.ArrayList;

public class Fifo {

    private ArrayList <Object> list;

    public Fifo() {
        this.list = new ArrayList <Object>();
    }

    public void push(Object obj) {
        list.add(obj);
    }

    public ArrayList getList() {
        return this.list;
    }

    public Object pull() {
        if (list.isEmpty()) {
            System.out.println("leer");
            return null;
        }
        Object o = list.get(0);
        list.remove(0);
        return o;
    }

    @Override
    public boolean equals(Object o) {
        if (o == this)
            return true;
        if (o.getClass() == this.getClass()) {
            Fifo other = (Fifo) o;
            ArrayList otherList = other.getList();

            if (otherList.size() == this.getList().size()) {
                boolean sameObjects = true;
                for (int i = 0; i < list.size(); i++) {
                    if (!list.get(i).equals(otherList.get(i))) {
                        sameObjects = false;
                    }
                }
                if (sameObjects)
                    return true;
            }
        }
        return false;
    }

    public Fifo clone() {
        Fifo cloneObj = new Fifo();

        for (int i = 0; i < this.list.size(); i++) {
            cloneObj.push(this.list.get(i));
        }
        return cloneObj;
    }
}

Java中的数组是不重写
toString()
方法的对象,因此,正如您所指出的,您将得到包含类名和[default]hashCode()的默认实现。要“正确”将数组转换为字符串,可以使用:


Java中的数组是不重写
toString()
方法的对象,因此,正如您所指出的,您将得到包含类名和[default]hashCode()的默认实现。要“正确”将数组转换为字符串,可以使用:


Java中的数组是不重写
toString()
方法的对象,因此,正如您所指出的,您将得到包含类名和[default]hashCode()的默认实现。要“正确”将数组转换为字符串,可以使用:


Java中的数组是不重写
toString()
方法的对象,因此,正如您所指出的,您将得到包含类名和[default]hashCode()的默认实现。要“正确”将数组转换为字符串,可以使用:

使用以下命令:

Arrays.toString(yourArray);

toString将为数组打印的内容将包含哈希代码、数组元素的类型,因此并非真正要查找的内容使用以下内容:

Arrays.toString(yourArray);

toString将为数组打印的内容将包含哈希代码、数组元素的类型,因此并非真正要查找的内容使用以下内容:

Arrays.toString(yourArray);

toString将为数组打印的内容将包含哈希代码、数组元素的类型,因此并非真正要查找的内容使用以下内容:

Arrays.toString(yourArray);


toString将为数组打印的内容将包含哈希代码,数组元素的类型,因此并非真正要查找的内容

覆盖
对象。toString()
,并给出可以正常工作的实现

重写
对象.toString()
并给出可以正常工作的实现

重写
对象.toString()
并给出可以正常工作的实现

重写
对象.toString()
并给出可以正常工作的实现

正如其他人提到的,使用array.toString()方法

来到

fifo.Fifo@2a139a55
fifo.Fifo@15db9742
这就是对象类中定义的
toString()
方法的工作方式。它打印以下格式的字符串:

ClassName@HexadecimalOfHashCode

这是在对象类中定义的默认实现。由于FIFO类不重写
toString()
方法,因此在FIFO对象上调用
toString()
将调用对象类中的
toString()
方法。

如其他人所述,使用Arrays.toString()方法

来到

fifo.Fifo@2a139a55
fifo.Fifo@15db9742
这就是对象类中定义的
toString()
方法的工作方式。它打印以下格式的字符串:

ClassName@HexadecimalOfHashCode

这是在对象类中定义的默认实现。由于FIFO类不重写
toString()
方法,因此在FIFO对象上调用
toString()
将调用对象类中的
toString()
方法。

如其他人所述,使用Arrays.toString()方法

来到

fifo.Fifo@2a139a55
fifo.Fifo@15db9742
这就是对象类中定义的
toString()
方法的工作方式。它打印以下格式的字符串:

ClassName@HexadecimalOfHashCode

这是在对象类中定义的默认实现。由于FIFO类不重写
toString()
方法,因此在FIFO对象上调用
toString()
将调用对象类中的
toString()
方法。

如其他人所述,使用Arrays.toString()方法

来到

fifo.Fifo@2a139a55
fifo.Fifo@15db9742
这就是对象类中定义的
toString()
方法的工作方式。它打印以下格式的字符串:

ClassName@HexadecimalOfHashCode

这是在对象类中定义的默认实现。由于您的FIFO类不重写
toString()
方法,因此对FIFO对象调用
toString()
将调用对象类中的
toString()
方法。

您需要重写
FIFO
类中的
toString()
,以打印有用的内容。也许像这样的事情是合适的:

@Override
public String toString() {
    return "Fifo" + list.toString();
}

(这将为您提供类似于
Fifo[element1,element2]
的内容)

您需要在
Fifo
类中重写
toString()
,以打印有用的内容。也许像这样的事情是合适的:

@Override
public String toString() {
    return "Fifo" + list.toString();
}

(这将为您提供类似于
Fifo[element1,element2]
的内容)

您需要在
Fifo
类中重写
toString()
,以打印有用的内容。也许像这样的事情是合适的:

@Override
public String toString() {
    return "Fifo" + list.toString();
}

(这将为您提供类似于
Fifo[element1,element2]
的内容)

您需要在
Fifo
类中重写
toString()
,以打印有用的内容。也许像这样的事情是合适的:

@Override
public String toString() {
    return "Fifo" + list.toString();
}

(这将为您提供类似于
Fifo[element1,element2]
)的功能)

首先,您使用的不是数组,而是
ArrayList
——这是Java中的一个实现

其次,您没有打印出数组列表,而是打印包含它的对象—一个
Foo
的实例

Fifo test = new Fifo();
// do stuff
System.out.println(test.toString());
如果您只想打印列表,则需要使用

Fifo test = new Fifo();
// do stuff
System.out.println(test.getList());
更好的解决方案是在Foo类中重写
toString

public class Foo {
  // everything you already have

  public String toString() {
    // you can format this however you want
    return "Contents of my list: " + list;
  }
}
当您将对象传递到
System.out.println
时,将自动调用此方法

Foo test = new Foo();
// do stuff
System.out.println(test);
将导致我的列表的
内容:[a,b,c]
(其中
a,b,c
实际上是列表中的任何内容)

补充信息 在Java中使用System.out.println时,r