3个特点:
- 存储有序:
- 有索引
- 元素可以重复
2个实现类:
- ArrayList
- LinkedList
具备以上三个特点
4个常用方法:
- add(int index, Object e)
向集合指定索引处,添加指定的元素,原有元素依次后移
带有索引的操作要防止索引越界异常,发生异常,后面的不再执行
java.lang.IndexOutOfBoundsException: 集合索引越界异常
ArrayIndexOutOfBoundsException: 数据索引越界异常
StringIndexOutOfBoundsException: 字符串索引越界异常
索引值最大可以到list.size(),相当于添加到最后
import java.util.ArrayList;
import java.util.List;
//awt包中也有一个list,是类,要注意区分
public class ListDemo {
public static void main(String[] args) {
function();
}
private static void function() {
// TODO Auto-generated method stub
List<String> list = new ArrayList<String>();
list.add("ab");
list.add("bc");
list.add("cd");
list.add("de");
System.out.println(list);
list.add(1, "hi");
System.out.println(list);
}
}
输出:
[ab, bc, cd, de]
[ab, hi, bc, cd, de]
- get(int index)
获取指定索引处的元素,并返回该元素 - remove(int index)
移除指定索引元素,返回移除元素
private static void function_1() {
// TODO Auto-generated method stub
List<Double> list = new ArrayList<Double>();
list.add(1.1);
list.add(2.1);
list.add(3.1);
list.add(4.1);
System.out.println(list);
Double d = list.remove(1);
System.out.println(list);
System.out.println(d);
}
输出:
[1.1, 2.1, 3.1, 4.1]
[1.1, 3.1, 4.1]
2.1
- set(int index, Object e)
修改指定索引上的元素
返回被修改之前的元素
索引值最大到list.size()-1,必须先有值再修改
3种遍历方式:
迭代器
for循环
增强for循环