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我的帖子看起来好多了哈哈。