List是Collection接口的子接口,其是有序集合增加了一些根据索引操作元素的方法;
List l = new ArrayList();
l.add(1);
l.add(2);
l.add(3);
//将元素5插入2位置;(原来2位置元素移到3位置)
l.add(1,5);
//将元素5插入2位置;(原来2位置元素被替换)
l.set(1,5);
//c为另一个集合,把集合c的元素加到l的l的3位置;
l.addAll(2,c);
//返回位置1的元素;
l.get(0);
//返回对象3的元素位置索引;
l.indexOf(3);
//返回对象3位置索引倒数;
l.lastIndexOf(3);
//删除索引2处的元素;
l.remove(1);
//返回索引2,3之间的元素
l.subList(1,2);
与Set接口提供的iterator()不同,List接口提供了listIterator()方法,返回一个ListIterator对象,该对象提供一些额外的操作List元素的方法;
--boolean hasPrevious()返回该迭代器关联的集合是否还有上一个元素;(能向后迭代)
--Object previous()返回带迭代器的上一个元素;
--void add()在指定位置插入一个元素;(不仅能删还能增加元素)
List list = new ArrayList();
list.add("a");
list.add("b");
list.add("c");
ListIterator lit = list.listIterator();
//要先正向迭代
while(lit.hasNext){
System.out.println(lit.next());
//迭代过程添加元素
lit.add("添加的元素");
}
//再反向迭代
while(lit.hasPrevious()){
System.out.println(lit.previous());
}
-----ArrayList,Vector是List的2个典型实现
Vector提供一个Stack子类,模拟栈(LIFO),提供以下方法:
-Object peek(),返回栈的第一个元素,但不将元素pop出栈;
-Object pop(),将第一个元素出栈;
-void push(Object item)将元素进栈;
Stack v = new Stack();
v.push("a");
v.push("b");
v.push("c");
//输出[a,b,c]
System.out.println(v);
//输出c
System.out.println(v.peek());
//暑促[a,b]
v.pop();
System.out.println(v);