面向接口编程:
接口类型 变量 =new 实现类();
List list=new ArrayList();
---------------------------------------
List实现类的特点与性能分析
--------------------------------------
三者共同的特点和遵循的规范:
1):允许元素重复;
2):记录元素的先后添加顺序
--------------------------------------
Vector类:
底层才有数组结构算法,方法都是使用Synchronized修饰,线程安全,但是相当于ArrayList性能较低;
ArrayList类:
底层才有数组结构算法,方法没有使用Synchronized修饰,线程不安全,相当于Vector性能较高。
ArrayLis现在基本上已经取代了Vector的江湖地位。
为了保证ArrayList线程安全,List lsit =Collections.SynchronizedList(new Arraylist(...));
LinkedList类:
底层才有双链表结构算法,方法没有使用Synchronized修饰,线程不安全。
数组结构算法和双向链表结构算法的性能问题:
数组结构算法:插入和删除操作速度低,查询和更改较高;
链表结构算法:插入和删除操作速度快,查询和更改较慢;
---------------------------------------------------------------------------
使用的选择:
Vector类打死都不用!即使要用,就用ArrayList类。如果插入和删除操作频繁,应该使用LinkedList类;
如果查询和更改操作频繁,应该使用ArrayList类;
在开发中。较多使用ArrayList类,根据具体的需求环境来选择;
public static void main(String[] args) { List list=new ArrayList(); list.add("b"); list.add("c"); list.add("d"); list.add("e"); //方式1:for循环 for (int index = 0; index < list.size(); index++) { Object rest = list.get(index);//取出指定索引位置的元素 System.out.println(rest); } System.out.println("---------------------------------------------------------------------------"); //方式2:for-each增强for循环 for (Object ele : list) { System.out.println(ele); } System.out.println("---------------------------------------------------------------------------"); //方式3:使用while循环操作迭代器Iterator Iterator it=list.iterator() ; while(it.hasNext()){ System.out.println(it.next()); } System.out.println("---------------------------------------------------------------------------"); //方式4:使用for循环操作迭代器Iterator for (Iterator it2=list.iterator() ;it2.hasNext(); ) { System.out.println(it2.next()); } System.out.println(list);}