一、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
微信扫一扫
支付宝扫一扫