Java ArrayList可以容纳多少个对象
ArrayList是Java集合框架的一个类,实现了List接口。它是一种线性结构,按顺序存储和访问每个对象。它允许存储重复的值。请记住,集合框架的每个类都可以容纳包装类的实例或自定义对象。它们不能使用原始类型。本文旨在解释ArrayList如何在Java中容纳这些对象。
ArrayList如何容纳对象
ArrayList内部使用一个数组来存储其元素。然而,数组的大小是可变的,可以根据需要增加和减少。当创建一个ArrayList时,它有一个初始容量,即数组可以在不重新调整大小的情况下容纳的元素数。默认的初始容量是10,但我们可以在构造函数中指定。
当向ArrayList添加一个元素时,它会检查数组是否有足够的空间来存储新元素。如果有,它将新元素分配给数组中的下一个可用位置。如果没有,它会创建一个新的数组,其容量是当前大小的两倍,将所有现有元素从旧数组复制到新数组,然后将新元素追加到新创建的数组末尾。这个过程称为调整大小或重新散列。
当从ArrayList中删除一个元素时,它会将该位置后面的所有元素向左移动一个索引位置。这在数组末尾创建了一个空隙,这减少了ArrayList的有效大小,但容量保持不变,直到添加新元素需要调整大小为止。
使用ArrayList的优点是,由于它内部使用数组,它提供了对任何元素通过索引的快速和随机访问。缺点是添加和删除元素可能较慢,特别是涉及调整大小时,因为它需要创建一个新的数组并复制所有元素。
语法
ArrayList collection_name = new ArrayList<>();
方法
- 第一步是导入‘java.util’包,以便使用ArrayList。
-
然后,定义一个类型为‘Integer’的ArrayList,并使用‘add()’方法存储一些元素。
-
在main()方法中,使用for-each循环迭代直到ArrayList的大小,打印屏幕上的对象。
示例1
让我们看看如何创建一个ArrayList来保存对象。
import java.util.*;
public class ArrayObj {
public static void main(String[] args) {
// Creating arraylist
ArrayList<Integer> araylist = new ArrayList<>();
// Adding elements in arraylist
araylist.add(1);
araylist.add(2);
araylist.add(1);
araylist.add(0);
araylist.add(9);
araylist.add(6);
System.out.println("Elements of the list : ");
// loop to iterate through elements
for(int i = 0; i < araylist.size(); i++ ) {
// to print the elements in the list
System.out.println(araylist.get(i));
}
}
}
输出
Elements of the list :
1
2
1
0
9
6
方法
- 创建一个类’Cart’,在其中声明两个变量,并定义一个带有字符串和整数两个参数的构造函数。
-
进一步将对象的数据转换为字符串,使用’toString()’方法。
-
现在,在’main()’方法中,声明一个名为’obj’的ArrayList集合,类型为’Cart’,并使用内置的’add()’方法将对象的详细信息存储到集合中。
-
使用for-each循环迭代ArrayList的大小,打印其对象到屏幕上。
示例2
在下面的示例中,我们将创建一个ArrayList来保存自定义对象。
import java.util.*;
public class Cart {
String item;
int price;
Cart(String item, int price) {
// this keyword shows these variables belong to constructor
this.item = item;
this.price = price;
}
// method for converting object into string
public String toString() {
return "Item: " + item + ", " + "Price: " + price;
}
public static void main(String[] args) {
// Declaring collection arraylist
ArrayList<Cart> obj = new ArrayList<>();
// Adding object to the collection
obj.add(new Cart("Rice", 59));
obj.add(new Cart("Milk", 60));
obj.add(new Cart("Bread", 45));
obj.add(new Cart("Peanut", 230));
obj.add(new Cart("Butter", 55));
// to print list of objects
System.out.println("The Objects in the List: ");
for(Cart print : obj) {
System.out.println(print);
}
}
}
输出
The Objects in the List:
Item: Rice, Price: 59
Item: Milk, Price: 60
Item: Bread, Price: 45
Item: Peanut, Price: 230
Item: Butter, Price: 55
结论
我们从定义ArrayList开始介绍了这篇文章,之后在后面的部分中详细解释了它如何保存对象。此外,我们讨论了两个示例程序,以便更好地理解ArrayList中的对象存储。