Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/331.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_Arrays_Arraylist - Fatal编程技术网

Java 有没有一种简单的方法可以将对象数组交换为ArrayList?

Java 有没有一种简单的方法可以将对象数组交换为ArrayList?,java,arrays,arraylist,Java,Arrays,Arraylist,我只是用一系列类编写了整个程序。例如: private Cat casts[] = new Cat[numOfCats]; 最近我的老师告诉我我们需要使用ArrayList 现在作业快到期了,我正在寻找一个快速解决这个问题的方法。根据我在网上读到的内容,我将创建如下列表: ArrayList<Cat> cats = new ArrayList<Cat>(numOfCats); ArrayList cats=新的ArrayList(numOfCats); 我想知道的

我只是用一系列类编写了整个程序。例如:

private Cat casts[] = new Cat[numOfCats]; 
最近我的老师告诉我我们需要使用
ArrayList

现在作业快到期了,我正在寻找一个快速解决这个问题的方法。根据我在网上读到的内容,我将创建如下列表:

ArrayList<Cat> cats = new ArrayList<Cat>(numOfCats);
ArrayList cats=新的ArrayList(numOfCats);
我想知道的是如何访问
新ArrayList猫的setter和getter
?根据我所能找到的,它类似于
cats get(I).getLocation().x
cats get(i).设置大小(100)但这两个都不起作用


谢谢您抽出时间,我希望很快能收到您的回复

要向ArrayList添加元素,请使用方法
add
,例如:
cats.add(new Cat())
;要获取元素,请使用方法
get
,例如
cats.get(index)
其中index是Cat对象在ArrayList中的位置

Arraylist cat=new Arraylist()//使用字符串更容易理解
Arraylist<String> cats = new Arraylist();//using string for easier understanding

cats.get (i);//will get the string object at index i
cats.add ("hi");
cats.add (new String ("world!");//will add a new string to the list. If your using an arraylist note that it will not be sorted in any way
猫。得到(i)//将在索引i处获取字符串对象 cats.add(“hi”); cats.add(new String(“world!”);//将向列表中添加一个新字符串。如果您使用arraylist,请注意它将不会以任何方式排序
这就是从arraylist获取索引的方式


作为旁注:使用
java.util.List
而不是arraylist,因为您可以在以后更改类型。

arraylist
是一个用于动态调整数组大小的包装类。虽然普通数组只提供“setter”、“getter”和“length”方法,但
arraylist
提供了这一点以及更多

假设您有
Cat[]catArray
List catList
(请参见下文,为什么
List
而不是
ArrayList

  • Setter:使用
    catList.set(i,someCat)代替
    catArray[i]=someCat
  • Getter:使用
    someCat=catList.get(i)
    ,而不是
    someCat=catArray[i]
    。Getter返回
    Cat
    ,因此可以对返回的对象调用如下方法:
    catList.get(i).meow();
  • 大小:
    catArray.length
    变为
    catList.Size()
  • 列表还提供了这样的方法,如添加
    (在列表末尾插入元素或附加到列表末尾)、
    删除
    (从列表中删除元素)、
    索引搜索元素等

    与普通数组相比,
    ArrayList
    的最大优点是它可以调整大小。您无需事先指定固定大小,
    ArrayList
    将随着添加元素而增大,随着删除元素而缩小

    列表的这种调整大小的特性也暗示了这两种结构之间的主要区别。使用数组时,您通常创建固定长度的数组,然后逐个设置其元素:

    Cat[] cats = new Cat[10];
    for (int i = 0; i < cats.length; i ++) {
       cats[i] = new Cat(); // populate cat #i
    }
    
    Cat[]猫=新猫[10];
    对于(int i=0;i
    对于列表,您通常会创建空列表,然后向其中添加元素。您不需要关心列表的大小,因为列表会随着添加元素而增长:

    List<Cat> cats = new ArrayList<Cat>();
    // we want to add 10 cats
    for (int i = 0; i < 10; i ++) {
       cats.add(new Cat()); //add new cat to the end of the list
    }
    
    List cat=new ArrayList();
    //我们想增加10只猫
    对于(int i=0;i<10;i++){
    cats.add(new Cat());//将新的Cat添加到列表的末尾
    }
    
    关于声明
    List cats=new ArrayList()
    。在java中,最好将变量声明为最不具体的接口。对于列表,通常是
    集合
    列表
    。但是,如果将
    cats
    声明为
    ArrayList cats=new ArrayList();


    我故意省略了数组与列表的许多方面,包括原语、性能、泛型。如果OP感兴趣,Internet of the可以提供更多详细信息。

    请显示您的代码以及这些代码是如何工作的。不幸的是,我的水晶球今天坏了。看起来您可能缺少一个
    ——尝试使用
    猫。get(i)
    获取集合中
    i
    位置的
    Cat
    实例(而不是
    Cat get(i)
    ).是的,你说得对,neuronaut。我在网上看了一本指南,他们那里没有
    ,所以我不知道我需要一本。谢谢!这个建议有一点代码味道。创建没有类型参数的ArrayList实例不是一个好主意(也就是说,
    ArrayList
    更好)。建议将不同的对象类型,如
    Cat
    String
    放入同一个集合只是自找麻烦。我很抱歉。我的手机出现问题。现在可以解决。谢谢!是的,其中一个重要的部分是我没有放入。但是您列出的其他东西也帮了大忙。哦,谢谢mak我的帖子看起来好多了哈哈。