List接口特点:有序,索引,可以重复元素。 实现类:ArrayList,LinkedList
ArrayList:查询快,增删慢
LinkedList:查询慢,增删快
List接口中的抽象方法,有一部分方法和它的父接口Collection是一样的。
List接口中自己特有的方法,带有索引的功能,如remove,set,add等
1、add(int index,E):将元素插入到列表的指定索引上,带有索引的操作,防止越界问题
2、remove(int index):移除指定索引上的元素,返回被删除之前的元素
3、set(int index):修改指定索引上的元素,返回被修改之前的元素
常见异常有:
java.lang.IndexOutOfBoundsException:集合越界异常
AarrayIndexOutOfBoundsException:数组越界异常
StringIndexOutOfBoundsException:字符串越界异常
三种方法的代码演示:
package itcast.demo;
import java.util.ArrayList;
import java.util.List;
/*
* List接口派系,继承Collection接口
* 下面很多实现类
* List接口特点:有序,索引,可以重复元素
* 实现类,ArrayList,LinkedList
*
* List接口中的抽象方法,有一部分方法和它的父接口Collection是一样的
* List接口中自己特有的方法,带有索引的功能
*/
public class ListDemo {
public static void main(String[] args) {
function();
function_1();
function_2();
}
/*
* add(int index,E):将元素插入到列表的指定索引上
* 带有索引的操作,防止越界问题
* java.lang.IndexOutOfBoundsException:集合越界异常
* AarrayIndexOutOfBoundsException:数组越界异常
* StringIndexOutOfBoundsException:字符串越界异常
*/
public static void function() {
List<String> list = new ArrayList<String>();
list.add("abc1");
list.add("abc2");
list.add("abc3");
list.add("abc4");
System.out.println(list);
list.add(1,"haha");//在第一位上添加字符串 haha
System.out.println(list);
}
/*
* remove(int index):移除指定索引上的元素,返回被删除之前的元素
*/
public static void function_1() {
List<Double> list = new ArrayList<Double>();
list.add(1.1);
list.add(1.2);
list.add(1.3);
list.add(1.4);
System.out.println(list);
Double d = list.remove(0);//将0位上的数删除
System.out.println(d);
System.out.println(list);
}
/*
* set(int index):修改指定索引上的元素,返回被修改之前的元素
*/
public static void function_2() {
List<Integer> list = new ArrayList<Integer>();
list.add(1);
list.add(2);
list.add(3);
list.add(4);
System.out.println(list);
Integer d = list.set(0,5);//将0位上的数修改为5
System.out.println(d);
System.out.println(list);
}
}
打印结果如下:
[abc1, abc2, abc3, abc4]
[abc1, haha, abc2, abc3, abc4]
[1.1, 1.2, 1.3, 1.4]
1.1
[1.2, 1.3, 1.4]
[1, 2, 3, 4]
1
[5, 2, 3, 4]