Java 中 ArrayList 可以保存哪些对象?
ArrayList 是 Java 集合框架的一个类,它实现了 List 接口。它是一种线性结构,以顺序方式存储和访问每个对象。它允许存储重复值。请始终记住,集合框架的每个类都可以保存包装类或自定义对象的实例。它们不适用于基本数据类型。本文旨在解释 Java 中 ArrayList 如何保存这些对象。
ArrayList 如何保存对象
ArrayList 在内部使用数组来存储其元素。但是,数组的大小不是固定的,它可以根据需要增加和减少。创建 ArrayList 时,它具有初始容量,即数组在调整大小之前可以容纳的元素数量。默认初始容量为 10,但我们可以在构造函数中指定它。
当向 ArrayList 添加元素时,它会检查数组是否有足够的空间来存储新元素。如果有,它只需将元素分配给数组中下一个可用的槽。如果没有,它将创建一个新的数组,其容量是当前大小的两倍,将所有现有元素从旧数组复制到新数组,然后将新元素追加到新创建的数组中。此过程称为调整大小或重新哈希。
当从 ArrayList 中删除元素时,它会将该位置之后的所有元素向左移动一个索引。这会在数组末尾创建一个空隙,从而减少 ArrayList 的有效大小,但容量保持不变,直到添加需要调整大小的新元素。
使用 ArrayList 的优点是它可以通过索引快速随机访问任何元素,因为它在内部使用数组。缺点是添加和删除元素可能很慢,尤其是在涉及调整大小的情况下,因为它需要创建一个新数组并复制所有元素。
语法
ArrayListcollection_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 中的对象存储。