集合是一组表示为单个单元的单个对象。Java 提供了集合框架,它定义了多个类和接口,以将一组对象表示为一个单元。该框架由 List 接口和 ArrayList 类组成。在本文中,讨论了 ListArrayList 之间的区别。

ListCollection 的子接口。它是可以存储重复值的对象的有序集合。由于 List 保留了插入顺序,它允许元素的位置访问和插入。List 接口由 ArrayListLinkedListVectorStack 类实现。List是一个接口,可以通过实现各种类来创建List的实例。

如果上面所说的听起来令人困惑,那么请参考下图,在实现 List 接口之前,可以在其中轻松发现层次结构和由类组成的 List 接口。
Java中List和ArrayList的区别

示例代码:


// Importing all utility classes
import java.util.*;

// Main class
public class YiibaiDemo {

    // Main driver method
    public static void main(String[] args)
    {
        List<String> al = new ArrayList<String>();
        // Adding elements using add() method
        // Custom input elements
        al.add("Yiibai");
        al.add("for");
        al.add("Geeks");

        // Print and display the elements in ArrayList class object
        System.out.println(al);
    }
}

运行结果如下:

[Yiibai, for, Geeks]

现在详述 java 中 ArrayList 的下一个概念。ArrayList 基本上是集合框架的一部分,存在于 java.util 包中。它为我们提供了 Java 中的动态数组。此类实现 List 接口。与 List 类似,如果从集合中删除对象,如果集合增长或缩小,则 ArrayList 的大小会自动增加。Java ArrayList 允许随机访问列表。ArrayList 不能用于原始类型,如 intchar 等。对于这种情况,我们需要一个包装类。下面是一个示例来演示 ArrayList 的实现。

语法:

new ArrayList();

这只是在堆内存中创建了一个新内存。为了访问对象,需要一个引用变量,因为它是面向对象编程中的经验法则。

ArrayList obj = new ArrayList();

到目前为止,只创建了一个对象,但还没有定义 ArrayList 对象中的元素类型。所以像往常一样,我们将使用标识符来传递字符串类型、整数类型、两者或其他一些类型。如下图所示:

ArrayList<Integer> obj = new ArrayList<>();
ArrayList<String> obj = new ArrayList<>();

注意:在将元素添加到 ArrayList 时,如果确实在索引处添加元素 ‘i’ 那么在 ArrayList 中,所有元素都会向右移动,在添加之前位于 ‘i’ 的前一个元素现在将位于 i + 1 个索引。它不会像在数组中看到的那样被替换。

至此,通过以上对语法的理解,我们已经了解了声明以及如何初始化 List,下面来看看程序中实现相同的内容以更好地理解。

例子:

// Importing all classes from java.util package
import java.util.*;

// Main class
class YiibaiDemo {

    // Main driver method
    public static void main(String[] args)
    {
        // Creating an ArrayList of String type Type safe ArrayList
        ArrayList<String> al = new ArrayList<String>();

        // Adding elements to above object created Custom input elements
        al.add("Yiibai");
        al.add("for");
        al.add("Geeks");

        // Print and display the elements of ArrayList
        System.out.println(al);

        // adding element at index where element is already present
        al.add(1, "Hi");

        // Print and display the elements of ArrayList
        System.out.println(al);
    }
}

运行结果如下:

[Yiibai, for, Geeks]
[Yiibai, Hi, for, Geeks]

现在讨论一下Java中两个类之间的区别,上面讨论的是ListArrayList类,它们以下面的表格格式显示如下,以便清楚地理解细线。

Java 中的 List 与 ArrayList 的比较和区别:

List ArrayList
List 是一个接口 ArrayList 是一个类
List 接口扩展了 Collection 框架 ArrayList 扩展了 AbstractList 类并实现了 List 接口
无法实例化列表。 ArrayList 可以被实例化。
List 接口用于创建与其索引号相关联的元素(对象)列表。 ArrayList 类用于创建包含对象的动态数组。
List 接口创建一个元素的集合,这些元素存储在一个序列中,并使用索引来识别和访问它们。 ArrayList 创建一个对象数组,该数组可以动态增长。