Java中List和ArrayList的区别

Java中List和ArrayList的区别

集合是一组表示为单个单元的单个对象。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 geek-docsDemo {

    // 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("geek-docs");
        al.add("for");
        al.add("Geeks");

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

运行结果如下:

[geek-docs, 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 geek-docsDemo {

    // 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("geek-docs");
        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);
    }
}

运行结果如下:

[geek-docs, for, Geeks]
[geek-docs, Hi, for, Geeks]

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

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

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

Python教程

Java教程

Web教程

数据库教程

图形图像教程

大数据教程

开发工具教程

计算机教程