Java 中 ArrayList 可以保存哪些对象?


ArrayList 是 Java 集合框架的一个类,它实现了 List 接口。它是一种线性结构,以顺序方式存储和访问每个对象。它允许存储重复值。请始终记住,集合框架的每个类都可以保存包装类或自定义对象的实例。它们不适用于基本数据类型。本文旨在解释 Java 中 ArrayList 如何保存这些对象。

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 中的对象存储。

更新于: 2023-07-21

117 次浏览

开启你的 职业生涯

通过完成课程获得认证

立即开始
广告