Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在java中将类的实例添加到Arraylist_Java_Arraylist - Fatal编程技术网

在java中将类的实例添加到Arraylist

在java中将类的实例添加到Arraylist,java,arraylist,Java,Arraylist,我有10个类电影的实例,我希望将它们添加到名为cataloge1的Arraylist中 在一个包含main方法的类中,我编写了以下代码 ArrayList catalogue1= new ArrayList () //the class movie is defined in another class Movie movie1= new Movie () Movie movie2= new Movie () Catalogue.Add (1, movie1) 怎么

我有10个类电影的实例,我希望将它们添加到名为cataloge1的Arraylist中

在一个包含main方法的类中,我编写了以下代码

 ArrayList catalogue1= new ArrayList ()

   //the class movie is defined in another class
    Movie movie1= new Movie ()
   Movie movie2= new Movie ()

 Catalogue.Add (1, movie1)
怎么了?我是否应该在某个地方定义此arraylist命名目录应该包含哪些类型的对象

先谢谢你

List<Movie> catalogue = new ArrayList<Movie>(10);
catalogue.add(movie1);
catalogue.add(movie2);
...
catalogue.add(movie10);

如果您想让它们按1-10的顺序排列。

这里有几个问题。首先,如果需要在列表的开头添加,则需要在索引0而不是1处添加。此外,如果您有JVM1.5+,那么应该使用泛型

List catalogue = new ArrayList<Movie>();
..
...
catalogue.add(movie1);
catalogue.add(movie2);//or (0,movie2)
List catalog=new ArrayList();
..
...
目录.增补(电影1);
目录.增补(电影2)//或(0,电影2)

如果这是您的逐字记录代码,那么有两个直接的问题。首先,您的ArrayList变量是“cataloge1”,但您正试图将一个项目添加到“catalog”中,该项目不存在。其次,您将在位置1添加一个项,这将超出范围,因为arraylist为空。因此,我将更改代码(添加Carl评论中提到的泛型:

ArrayList<Movie> catalogue1 = new ArrayList<Movie>();
Movie movie1= new Movie();
Movie movie2= new Movie();
catalogue1.add(movie1); //equivalently: catalogue.add(0, movie1);
catalogue1.add(movie2);
ArrayList目录1=新的ArrayList();
电影1=新电影();
电影2=新电影();
cataloge1.add(movie1);//等价地:catalog.add(0,movie1);
目录1.增补(电影2);

您的代码中有一些简单的打字错误:

ArrayList catalogue1 = new ArrayList();
Movie movie1= new Movie();
Movie movie2= new Movie();
// Catalogue.Add (1, movie1)
catalogue1.add(movie1);
catalogue1.add(movie2);
从上面的代码可以看出,您遇到的两个问题是:

  • 的方法以小写的
    a
    开始,您使用的是大写的
    a
    。Java标识符区分大小写
  • 您正在对名为:
    cataloge
    的对象调用该方法,但您将命名为:
    cataloge1

  • 你正在运行哪个版本的JVM?如果它>1.5,你可能应该使用泛型。你的问题是什么?它编译吗?显然不是,但你得到了什么消息?你是指cataloge1.add(1,movie1)我想?大写字母catalog表示一个类,add表示.Net。你的arraylist是cataloge1。
    ArrayList catalogue1 = new ArrayList();
    Movie movie1= new Movie();
    Movie movie2= new Movie();
    // Catalogue.Add (1, movie1)
    catalogue1.add(movie1);
    catalogue1.add(movie2);