2012-02-11 37 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());