一、List的概述
List是Java集合框架中的一个接口,它提供了一个有序且可重复的集合。List允许在列表中存储一组元素,这些元素可以根据插入的顺序访问,也可以根据索引位置访问。List有很多具体的实现类,比如ArrayList、LinkedList等。
下面是一个简单的List示例:
List<String> list = new ArrayList<>(); list.add("Apple"); list.add("Banana"); list.add("Cherry"); System.out.println(list);
输出结果为:[Apple, Banana, Cherry]。可以看到,List是有序的,并且可以存储重复的元素。
二、List的常用方法
1. 添加元素
List提供了多个方法用于添加元素,包括add()、addAll()等。
示例:
List<String> list = new ArrayList<>(); list.add("Apple"); list.addAll(Arrays.asList("Banana", "Cherry")); System.out.println(list);
输出结果为:[Apple, Banana, Cherry]。
2. 获取元素
List提供了多个方法用于获取元素,包括get()、subList()等。
示例:
List<String> list = new ArrayList<>(); list.addAll(Arrays.asList("Apple", "Banana", "Cherry")); System.out.println(list.get(1)); System.out.println(list.subList(0, 2));
输出结果为:Banana 和 [Apple, Banana]。
3. 删除元素
List提供了多个方法用于删除元素,包括remove()、removeAll()等。
示例:
List<String> list = new ArrayList<>(); list.addAll(Arrays.asList("Apple", "Banana", "Cherry")); list.remove("Banana"); list.removeAll(Arrays.asList("Cherry")); System.out.println(list);
输出结果为:[Apple]。
三、List的实现类
1. ArrayList
ArrayList是基于数组实现的List,ArrayList底层使用数组来存储元素。当元素数量增多时,需要对数组进行扩容操作。
示例:
List<String> list = new ArrayList<>(); list.add("Apple"); list.add("Banana"); list.add("Cherry"); System.out.println(list);
输出结果为:[Apple, Banana, Cherry]。
2. LinkedList
LinkedList是基于链表实现的List,LinkedList底层使用链表来存储元素。当需要插入或删除中间元素时,LinkedList比ArrayList要快。
示例:
List<String> list = new LinkedList<>(); list.add("Apple"); list.add("Banana"); list.add("Cherry"); System.out.println(list);
输出结果为:[Apple, Banana, Cherry]。
四、List的性能比较
ArrayList和LinkedList都是常用的List实现类,它们各有优缺点,需要根据具体的场景选择合适的实现类。
对于随机访问和修改元素的操作,ArrayList比LinkedList更快。对于经常需要插入或删除元素的场景,LinkedList比ArrayList更快。
需要注意的是,如果需要进行大量随机访问或修改元素的操作,建议使用数组,比如int[]、double[]等,因为数组的性能比List更好。
五、总结
List是Java集合框架中比较常用的一个接口,它提供了一个有序且可重复的集合。List有很多具体的实现类,比如ArrayList、LinkedList等,每个实现类都有各自的优缺点。在实际应用中,需要根据具体的场景选择合适的实现类。
完整代码示例如下:
import java.util.*; public class ListExample { public static void main(String[] args) { List<String> arrayList = new ArrayList<>(); List<String> linkedList = new LinkedList<>(); // 添加元素 arrayList.add("Apple"); linkedList.add("Apple"); arrayList.addAll(Arrays.asList("Banana", "Cherry")); linkedList.addAll(Arrays.asList("Banana", "Cherry")); // 获取元素 System.out.println(arrayList.get(1)); System.out.println(linkedList.get(1)); System.out.println(arrayList.subList(0, 2)); System.out.println(linkedList.subList(0, 2)); // 删除元素 arrayList.remove("Banana"); linkedList.remove("Banana"); arrayList.removeAll(Arrays.asList("Cherry")); linkedList.removeAll(Arrays.asList("Cherry")); // 打印元素 System.out.println(arrayList); System.out.println(linkedList); } }
原创文章,作者:小蓝,如若转载,请注明出处:https://www.506064.com/n/258488.html