Java:数组列表打印对象引用而不是数组

时间:2015-03-29 03:14:08

标签: java arrays

在编码方面,我非常喜欢新手。我想要完成的是从txt文件加载成绩并将它们放入现有数组中。

我实际上已经解决了这个问题。在程序中,数组确实保留了值。但是当我打印它们时,我得到了对象引用又名[I @ 5c647e05而不是数组。以下是我的代码。

   public static void main(String[] args)    {
        int[] list = new int[15];
        Scanner in = null; // create a scanner object
        loadGrades(in, list);

        System.out.println(list);
    }

    public static void loadGrades(Scanner in, int[] list) {

        int grades; // int variable
        try { // try            
            in = new Scanner(new FileReader("Proj5Data.txt"));// change filename
        } catch (FileNotFoundException ex) { // catch
            System.out.println("File not found");
            System.exit(1);
        }
        for (int i = 0; i < list.length; i++) {         
                grades = in.nextInt(); // var
                list[i] = grades ;// put the int in the array at the counter value            
        }
        in.close();

    }

将结果打印为:

[I@5c647e05
BUILD SUCCESSFUL (total time: 0 seconds)

4 个答案:

答案 0 :(得分:0)

您无法在Java中打印列表中的内容。您需要循环遍历数组的内容并单独打印它们。

for(int i : list){
  System.out.println(i);
}

答案 1 :(得分:0)

当您在幕后打印数组时,正在调用方法toString()并且它不会打印数组的内容(这太糟糕了IMO)。但您可以使用库Arrays轻松克服它:

System.out.println(Arrays.toString(list));

答案 2 :(得分:0)

System.out.println(list)使用.toString()方法来解析要打印的内容。 您可以使用Arrays.toString(list)或逐个打印。

答案 3 :(得分:-1)

所以你们给我的所有方法确实有效。但我最终只使用printf将它们打印出来。谢谢你的帮助。