List接口对Collection进行了简单的扩充。
它的具体实现类常用的有ArrayList和LinkedList。
ArrayList从其命名中可以看出它是以一种类似数组的形式存储,因此它的随机访问速度极快,但插入和移除元素的速度很慢。
LinkedList的内部实现是链表,它适合于在链表中间需要频繁进行插入和删除操作,不适合随机访问,LinkedList可以当作堆栈、队列和双向队列使用。
一个List可以生成ListIterator,使用它可以从两个方向遍历List,也可以从List中间插入和删除元素。ListIterator只应该用来由后向前遍历ArrayList,而不是用来插入和删除元素。
下面以ArrayList为例,介绍一下List中的基本方法:
1、添加方法:add(e); 有顺序的依次从下标0往后添加
例如:
// 默认给这个集合添加一些元素
list.add("abc1");
list.add("abc2");
list.add("abc3");
//System.out.println(list);
add(index,e); 插入到指定的index位置
// 1、插入元素
list.add(2,"bcd");
System.out.println(list);
2、删除指定位置的元素
remove(index);
// 2、删除指定位置的元素
System.out.println(list.remove(1));
System.out.println(list);
System.out.println(list.remove(1));
System.out.println(list);
3、获取指定位置的元素
get(index);
// 3、获取指定位置的元素
System.out.println(list.get(1));
System.out.println(list);
4、修改指定位置的元素
set(index,e);
// 4、修改指定位置上的元素
System.out.println(list.set(1,"hello"));
System.out.println(list);
5、获取元素的位置
indexOf(e);
// 5、获取元素的位置
// System.out.println(list.indexOf("abc2"));
6、获取子列表
subList(fromindex,toindex);
// 6、获取子列表
System.out.println(list.subList(1,3));
以下为完整代码:
package list_set;
import java.util.ArrayList;
import java.util.List;
public class Main {
public static void main(String[] args)
{
List list=new ArrayList();
listMethodDemo(list);
}
/*
* 演示List中的特有方法
*/
public static void listMethodDemo(List list)
{
// 默认给这个集合添加一些元素
list.add("abc1");
list.add("abc2");
list.add("abc3");
//System.out.println(list);
// 1、插入元素
// list.add(2,"bcd");
// System.out.println(list);
// 2、删除指定位置的元素
// System.out.println(list.remove(1));
// System.out.println(list);
// System.out.println(list.remove(1));
// System.out.println(list);
// 3、获取指定位置的元素
// System.out.println(list.get(1));
// System.out.println(list);
// 4、修改指定位置上的元素
// System.out.println(list.set(1,"hello"));
// System.out.println(list);
// 5、获取元素的位置
// System.out.println(list.indexOf("abc2"));
// 6、获取子列表
System.out.println(list.subList(1,3));
}
}