Java中的List add()方法及其示例

Java中的List add()方法及其示例

List是Java中最常用的集合类型之一,它允许我们存储一组有序的元素,并支持元素的添加、删除、获取等操作。add()方法是List接口中最基本的方法之一,作用是向列表的尾部添加一个元素。本文将详细介绍Java中的List add()方法及其使用示例。

List接口中的add()方法

List接口的add()方法有两种重载形式:

boolean add(E e);
void add(int index, E element);

第一种形式是将指定元素追加到List的末尾,返回值为true表示添加成功,false表示添加失败。例如:

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
System.out.println(list); // [Java, Python, C++]

第二种形式是在指定位置插入一个元素,其余元素向后移动。例如:

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list.add(1, "JavaScript");
System.out.println(list); // [Java, JavaScript, Python, C++]

List的子类中的add()方法

除了List接口本身定义的add()方法之外,List的实现类也可能会定义自己的add()方法。下面以ArrayList和LinkedList为例,讲解它们各自的add()方法特点。

ArrayList中的add()方法

ArrayList的add()方法实现比较简单,它仅仅是将元素添加到内部数组的末尾,并记录当前列表的大小。如果该数组已经被填满,ArrayList会自动扩容,从而获得更多的存储空间。

public boolean add(E e) {
    ensureCapacityInternal(size + 1);
    elementData[size++] = e;
    return true;
}

由于ArrayList的内部实现是基于数组的,因此在末尾插入元素的时间复杂度为O(1),而在列表的中间插入元素的时间复杂度为O(n),其中n是列表的大小。

LinkedList中的add()方法

LinkedList的add()方法实现稍微有些复杂,它需要在链表的指定位置插入一个元素,因此需要遍历链表,在找到指定位置之后进行插入操作。

从图中可以看出,我们需要遍历链表找到指定位置,然后执行插入操作。由于LinkedList本身就是基于链表实现的,因此在插入元素的时间复杂度上,它的表现相对比较稳定,都是O(n)。

List add()方法的使用示例

下面我们通过几个示例来进一步了解List的add()方法的具体使用。

添加重复元素

List中允许添加重复的元素,不会出现任何问题,例如:

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("Java");
System.out.println(list); // [Java, Python, Java]

在指定位置插入元素

add(int index, E element)方法可以在指定位置插入一个元素,例如:

List<String> list = new ArrayList<>();
list.add("Java");
list.add("Python");
list.add("C++");
list.add(1, "JavaScript"); // 在索引为1的位置插入元素
System.out.println(list); // [Java, JavaScript, Python, C++]

添加null元素

List中允许添加null元素,例如:

List<String> list = new ArrayList<>();
list.add("Java");
list.add(null);
list.add("C++");
System.out.println(list); // [Java, null, C++]

添加基本数据类型元素

List中不能直接添加基本数据类型的值,需要使用对应的包装类。例如:

List<Integer> list = new ArrayList<>();
list.add(1); // 自动装箱为Integer类型
list.add(2);
list.add(3);
System.out.println(list); // [1, 2, 3]

添加数组元素

List中可以添加数组类型的元素,例如:

List<String[]> list = new ArrayList<>();
list.add(new String[]{"Java", "Python", "C++"}); // 添加字符串数组
System.out.println(Arrays.toString(list.get(0))); // [Java, Python, C++]

结论

本文详细介绍了Java中的List add()方法及其使用方法,其中包括List接口中定义的两种add()方法形式,以及ArrayList和LinkedList的自定义add()方法。我们还通过几个示例介绍了List的add()方法的具体使用。希望本文对大家使用List集合类有所帮助。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程