Java List接口详解:ArrayList与LinkedList使用示例

需积分: 32 5 下载量 49 浏览量 更新于2024-09-08 收藏 121KB DOC 举报
"Java List接口及其使用方法,包括ArrayList和LinkedList的实例化,以及add(int index, Object obj)和set(int index, Object obj)方法的差异" Java中的List接口是集合框架的重要组成部分,它继承自Collection接口,专门用于存储序列化的元素。List接口提供了丰富的操作方法,特别适用于需要按特定顺序访问元素的场景。与Set接口不同,List允许元素重复,并且保持插入顺序。 表1中列出了List接口的一些主要方法: 1. `add(int index, Object obj)`: 这个方法用于在指定的索引位置插入一个元素。如果索引位置超出范围(小于0或大于等于size()),则会抛出`IndexOutOfBoundsException`。如果在已存在的元素位置插入新元素,所有后续元素的索引都将增加。 2. `set(int index, Object obj)`: 这个方法允许替换List中指定索引位置的元素。它不会改变List的大小,而是将指定位置的元素替换为新的对象。同样,如果索引位置无效,也会抛出`IndexOutOfBoundsException`。 在实际编程中,我们经常使用ArrayList和LinkedList作为List接口的实现类。ArrayList基于动态数组,适合于随机访问和遍历,但插入和删除元素时效率较低,因为可能需要移动大量元素。LinkedList则使用双向链表实现,插入和删除操作高效,但随机访问性能较差。 以下是一个示例,展示了如何实例化List和使用`add`和`set`方法: ```java List<String> list = new ArrayList<String>(); // 使用ArrayList实例化List list.add("A"); list.add("E"); list.add("D"); // 修改索引位置为1的对象 list.set(1, "B"); // 在索引位置2插入元素 list.add(2, "C"); // 遍历并打印List for (String item : list) { System.out.println(item); } ``` 在这个例子中,`set(1, "B")`将索引位置1的对象“E”替换为“B”,而`add(2, "C")`在索引位置2(即“B”的后面)插入了“C”。最后输出的结果将是`A B C D E`。 了解并熟练掌握这些基本的List操作对于Java开发者来说至关重要,因为它在处理各种数据结构和算法时都会频繁使用。此外,List接口还有其他方法,如`remove(int index)`用于删除指定索引的元素,`get(int index)`用于获取指定索引的元素,以及`indexOf(Object o)`和`lastIndexOf(Object o)`用于查找元素的索引等,都是开发过程中常用的工具。