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)); } }