显示多种类型的数组的元素

时间:2017-08-20 17:33:41

标签: java arrays

我需要创建一个具有以下结构的数组:

{int, String, String, int}

我想将这个数组插入另一个数组中:

{int, String, String, int}, {int, String, String, int}, ... and so on.

我已经尝试过这个:

Object[] vector = new Object[100];

public void inserare(int poz, int nr, String nume, String prenume, int nota){

    Object[] aux = new Object[4];
    aux[0] = new Integer(nr);
    aux[1] = new String(nume);
    aux[2] = new String(prenume);
    aux[3] = new Integer(nota);

    vector[poz] = aux;

}

public void afisareLista(){

    for(int i = 0; i < vector.length; i++){
        System.out.println(vector[i]);
    }
}

插入了Aux,但是当我想要打印主数组的所有元素时,我得到的就是这样:

[Ljava.lang.Object;@15db9742

任何有助于正确展示元素的帮助。

2 个答案:

答案 0 :(得分:0)

不要这样做。围绕你的int,String,String,int构建一个类,并给它们说出名字。然后你可以把这个类的对象放在你的数组/向量中,并且不要失去任何编译类型的安全性。

答案 1 :(得分:0)

将对象传递给System.out.println()会导致在传递的实例上调用toString()方法。这是ObjectObject&#39; s toString()返回对象的地址,而不是包含字段名称及其值的String

解决此问题:

创建并使用自定义类来包含这4个字段,并使用此类的实例填充数组 然后覆盖此类中的toString()以返回预期的字符串。

或者不要依赖toString()但是创建一种实用工具方法来返回&#34;可打印的&#34;对象的字符串,并在println()方法的参数中调用它:

System.out.println(renderMessage(vector[i]));
...
public String renderMessage(Object[] obj){
    return "nr=" + obj[0]+ 
    "nume=" + obj[1]+
    "prenume=" + obj[2]+
    "nota=" + obj[3];
}