List接口简介
此接口的用户可以对列表中每个元素的插入位置进行精确地控制。用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素。
与 set 不同,列表通常允许重复的元素。
List接口特点:
- 有序集合,存储元素和取出元素的顺序相同
- 带有索引,提供一些索引的相关方法
- 允许集合中含有重复元素
List接口实现类的UML类图
List接口的常用方法
boolean add(E e) 将指定的元素追加到此列表的末尾。
E get(int index) 返回此列表中指定位置的元素。
E remove(int index) 移除列表中指定位置的元素。
E set(int index, E element) 用指定元素替换列表中指定位置的元素。
import java.util.ArrayList;
import java.util.List;
public class ListDemo1 {
public static void main(String[] args) {
List<String> list = new ArrayList<String>();
// boolean add(E e) 将指定的元素追加到此列表的末尾。
list.add("小明");
list.add("小丽");
list.add("小红");
list.add("小红");
System.out.println(list); // [小明, 小丽, 小红, 小红]
// E get(int index) 返回此列表中指定位置的元素。
// 注意:索引不要超出最大长度,防止索引越界异常。
System.out.println(list.get(0)); // 小明
System.out.println(list.get(1)); // 小丽
System.out.println(list.get(2)); // 小红
System.out.println(list.get(3)); // 小红
//System.out.println(list.get(4)); // 索引越界 java.lang.IndexOutOfBoundsException
System.out.println("==============");
// E remove(int index) 移除列表中指定位置的元素。
// 注意:索引不要超出最大长度,防止索引越界异常。
System.out.println("移除元素:"+list.remove(0));
System.out.println(list); // [小丽, 小红, 小红]
//System.out.println(list.remove(4)); // 索引越界 java.lang.IndexOutOfBoundsException
System.out.println("==============");
//E set(int index, E element) 用指定元素替换列表中指定位置的元素。返回被替换的元素
// 注意:索引不要超出最大长度,防止索引越界异常。
list.set(0,"老王");
System.out.println(list);
}
}
输出结果:
总结
学习List集合我们需要从高向下学。上层中抽取了共性的部分。其余不同的部分让实现类各自实现。
当我们熟悉了List接口的方法时,也自然的熟悉了ArrayList、LinkedList、Vector实现类的部分方法,因为List接口中定义了实现类需要实现的方法。