我需要创建一个具有以下结构的数组:
{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
任何有助于正确展示元素的帮助。
答案 0 :(得分:0)
不要这样做。围绕你的int,String,String,int构建一个类,并给它们说出名字。然后你可以把这个类的对象放在你的数组/向量中,并且不要失去任何编译类型的安全性。
答案 1 :(得分:0)
将对象传递给System.out.println()
会导致在传递的实例上调用toString()
方法。这是Object
,Object
&#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];
}