【问题标题】:Array list printing a strange output [duplicate]数组列表打印一个奇怪的输出[重复]
【发布时间】:2023-03-05 21:30:01
【问题描述】:

我想要达到的目标是让用户输入电影的名称以及发行日期。为此,我设置了单独的课程。

Movie cameronsMovie = new Movie("Sin City", 2005);
    Movie [] movieList = new Movie [9];
    movieList[0] = cameronsMovie;

    for (int i = 0; i < movieList.length; i++) {
        System.out.print("Please enter a movie Title: ");
        String title = GetInput.readLine(); //Get movieTitle
        System.out.print("Please enter the year it was released: ");
        int releaseDate = GetInput.readInt(); //Get year
        // creating a new ojbect
        Movie userMovie = new Movie(title, releaseDate); /* calls the 
        constructor from Movie class
        */
        movieList[i] = userMovie;
    }

    System.out.println(movieList.toString());

这是我用来调用其他类的代码,我遇到的问题是我的最后一行代码打印出 [LMovie;@2a139a55

的结果

在我的类文件中我有这个代码

public String toString() {

       String temp = new String();
       temp = "Movie title: " + getTitle() + "\nYear of Release: " +        
              getYear();
       return(temp);

       }

返回我的字符串。我的 toString() 的设置方式是否有问题,或者我在其他地方犯了错误

【问题讨论】:

  • 使用Arrays.toString(movieList)
  • 永远不要调用你的数组a List
  • 您的意图是打印带有发行日期的电影名称,所以这应该在对象级别完成。您的 toString() 方法应该在 Movie 类中。并且您应该在 for 循环中对其进行迭代。但是在这里,您只是在列表级别调用 toString 方法,该方法包含电影对象列表。这样做的其他方法将由 Eran/Imran 建议

标签: java arrays for-loop output


【解决方案1】:

您的问题标题有点混乱,因为您不使用 ArrayList,而是使用 Array。 使用 ArrayList,使用 ArrayList.toString(); 打印它是没有问题的

但是因为你使用了一个数组,你需要一个在Arrays中定义的辅助函数:

 Arrays.toString(movieList);

【讨论】:

  • 我确实将它添加到我的代码中,它也按照它需要的方式工作。我想我的困惑问题源于我对自己做错了什么的困惑。不过谢谢你的帮助。非常感谢
猜你喜欢
  • 1970-01-01
  • 2017-12-29
  • 2014-01-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-05-27
  • 1970-01-01
相关资源
最近更新 更多