List集合
一、List集合简介
List接口是继承Collection接口,是一种单列集合。在List集合中所有元素都是一种线性方式进行存储的,可以通过索引来进行访问。List的集合有以下特点:
- 他是一个有序集合。例如集合元素是1,2,4,5,那么集合中元素的存储顺序也是1,2,4,5
- 有索引。包含了一些带索引的方法。
- 允许存储重复的元素。
下面我们可以看看List接口特有的方法(带索引的方法):
1.void add(int index, Object ele):在index位置插入ele元素
2.Object get(int index):获取指定index位置的元素
3.Object remove(int index):移除指点index位置的元素
4.Object set(int index, Object ele):设置指定index位置的元素为ele
二、代码实现
1.add(int index, Object ele)
代码如下(示例):
//创建list集合
List<String> list = new ArrayList<>();
list.add("a");
list.add("b");
list.add("c");
list.add("a");//重复元素
System.out.println(list);
我们可以看到重复元素也可以添加成功。
[a, b, c, a]
随后我们使用add(int index, Object ele)方法,在b,c之间添加test
代码如下(示例):
//add(int index, Object ele)
list.add(2,"test");
System.out.println(list);
打印结果为:
[a, b, test, c, a]
2.Object get(int index)
代码如下(示例):
//Object get(int index)
System.out.println(list.get(2));
结果为:test
而集合遍历,我们可以采用三种方法
1.iterator迭代器
2.for循环
3.增强for循环(foreach)
- 迭代器上一篇文章简单介绍了迭代器,实例如下:
代码如下(示例):
//获取迭代器
Iterator<String> it = list.iterator();
while (it.hasNext()){
System.out.println(it.next());
}
- for循环
代码如下(示例):
for (int i=0;i<list.size();i++) {
System.out.println(list.get(i));
}
- 增强for循环(foreach)
代码如下(示例):
for (String s:list
) {
System.out.println(s);
}
我们可以看到,三种方式的打印结果如下
a
b
test
c
a
3.Object remove(int index)
代码如下(示例):
String s=list.remove(2);
System.out.println("被移除的元素:"+s);
System.out.println(list);
当我们移除掉索引为2即顺序为第3个元素时,结果如下:
被移除的元素:test
[a, b, c, a]
4.Object set(int index, Object ele)
代码如下(示例):
//修改索引为2的元素
list.set(2,"end");
System.out.println(list);
打印结果如下:[a, b, end, a]
5.注意异常
当我们在使用集合时,最常出现的错误就是索引越界异常,比如说集合中只有4个元素,索引为0,1,2,3,而你要获取get(4)时,就会抛出异常:
代码如下(示例):
//打印索引为4的元素
System.out.println(list.get(4));
我们可以看到控制台抛出的异常为:.IndexOutOfBoundsException,这就是典型的索引越界异常,常见的有以下几种:
- ndexOutOfBoundsException:.索引越界异常,集合会报
- ArrayIndexOutOfBoundsException:数组索引越界异常
- StringIndexOutOfBoundsException:字符串索引越界异常