2012-02-11 65 views
2
public static void main(String[] args) { 
    LinkedList test = new LinkedList(); 
    int[] numberPair; 
    numberPair = new int[2]; 
    numberPair[0] = 1; numberPair[1] = 2; 

    test.add(numberPair); 

} 

我該如何去訪問列表的第一個節點中的數組並打印它?我用test.getFirst()試過了所有的類型轉換,但是它會打印出內存地址,或者我得到一長串對象的轉換錯誤。Java /打印包含陣列的LinkedList節點

回答

3

嘗試使用Arrays.toString()

詳情請參閱javadoc

編輯:

至於其他的答案已經指出的那樣,你也應該使用泛型與您的清單。您應該將其聲明爲LinkedList<int[]>。然後在迭代元素時,使用Arrays.toString將每個元素轉換爲一個字符串並打印結果。

+0

感謝,所有我需要做的是與聲明它,和Arrays.toString開始工作。我不確定它爲什麼會影響這一點,但是,嘿,它工作。 – user1204458 2012-02-13 03:56:54

+0

@ user1204458:除非您使用''(或者在從列表中獲取元素後明確地將元素轉換爲'int []'),否則它將被視爲「Object」。你不能在'Object'上應用'Arrays.toString()',因爲它需要一個'int []'。 – MAK 2012-02-13 20:04:37

+0

@ user1204458:順便說一句,如果這解決了您的問題,您可以將其標記爲接受的答案。 – MAK 2012-02-13 20:05:05

1

如果使用Java 1.5+使用Java泛型,像這樣:

LinkedList<int[]> test = new LinkedList<int[]>(); 
int[] top = test.getFirst(); 
for (int i: top){ 
    System.out.print(i+" "); 
} 
System.out.println(); 
1

你應該使用一個通用的類型,而不是原始的類型。

LinkedList<int[]> test = new LinkedList<int[]>(); 

什麼時候test.getFirst(),你得到一個int數組回來,所以只是遍歷它。

int[] bla = test.getFirst(); 

for (int i : bla) 
    System.out.println(i); 

或者使用

Arrays.toString(test.getFirst());