Java集合框架---重构设计

 

 

面向接口编程:

接口类型 变量 =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);
}

 

 



 

posted @ 2017-04-11 11:10  *小嘻嘻*  阅读(371)  评论(0编辑  收藏  举报