2014年4月5日 java集合框架总结2--List接口及其子类
List接口
Collection接口的子接口,可以使用Collection中全部方法。
有序集合,元素有索引,元素可以重复
List:特有的常见方法:有一个共性特点就是都可以操作角标。
1,添加
void add(index,element):
boolean addAll(int index, Collection c):
2,删除;
Object remove(index):
3,修改:
Object set(index,element):
4,获取:
Object get(index):
int indexOf(object):
int lastIndexOf(object):
List subList(from,to):
import java.util.ArrayList; import java.util.List; /** * List接口及其子类 * 2014-4-6 * @author Administrator * */ public class ListDemo { /** * @param args */ public static void main(String[] args) { List l1=new ArrayList(); List l2=new ArrayList(); show(l1,l2); } public static void show(List l1,List l2){ //添加元素 l1.add(0, "123"); l1.add(1, "mno"); l1.add(2, "abc"); l1.add(3, "mno"); System.out.println(l1); l2.add("789"); l2.add("456"); l2.addAll(1,l1 ); System.out.println(l2); //删除 l2.remove(2); System.out.println(l2); //修改 l2.set(4, "ijk"); System.out.println(l2); //获取 l2.add(3,"ijk"); System.out.println(l2); System.out.println(l2.get(3)); System.out.println(l2.indexOf("456")); //返回此列表首次出现元素的位置 System.out.println(l2.indexOf("ijk")); //返回此列表最后出现元素的位置 System.out.println(l2.lastIndexOf("ijk")); //返回从索引1开始(包含)到索引2位置前 List l3=l2.subList(1, 4); System.out.println(l3); } }
程序运行结果
[123, mno, abc, mno] [789, 123, mno, abc, mno, 456] [789, 123, abc, mno, 456] [789, 123, abc, mno, ijk] [789, 123, abc, ijk, mno, ijk] ijk -1 3 5 [123, abc, ijk]
Iterator的子接口,专供List接口使用
元素所在容器容器有索引,可以逆向遍历
特有方法:
boolean hasPrevious()
Object previous()
void add(element)
List接口下的常用集合类
Vector:内部是数组数据结构,多个线程是同步的。增删,查询都很慢!(同步是以牺牲效率为代价的)
ArrayList:内部是数组数据结构,多个线程是不同步的。替代了Vector。查询的速度快。
LinkedList:内部是链表数据结构,多个线程是不同步的。增删元素的速度很快。
Vector类下的子类Stack
Stack:内部是栈数据结构,先进后出