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集合类有所帮助。