2017-08-20 18 views
-3

我需要創建具有以下結構的陣列:顯示元件

{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]); 
    } 
} 

輔助插入,但是當我要打印主陣列中的所有元素,所有時I g et是這樣的:

[Ljava.lang.Object;@15db9742 

任何幫助正確顯示元素的讚賞。

回答

0

將對象傳遞給System.out.println()結果是在傳入的實例上調用toString()方法。這是一個ObjectObjecttoString()返回對象的地址,而不是包含字段名稱及其值的String

爲了解決這個問題:

無論是創建和使用自定義類包含這4個領域和填充該類的實例您的陣列。
然後在此類中覆蓋toString()以返回預期的String。

否則不靠toString()而是創建一個實用方法返回對象的「打印」的字符串,並調用它在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]; 
} 
+0

這解決了我的問題。謝謝! – icatalin

0

不要這樣做。圍繞你的int,String,String,int構建一個類並給他們講一個名字。然後你可以把這個類的對象放在你的數組/矢量中,並且不會失去任何編譯類型的安全性。