zoukankan      html  css  js  c++  java
  • 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);
    }
    
    
    


  • 相关阅读:
    regex正则表达式
    openfire+asmack
    vim 粘贴 取消缩进zz
    selenium自动化实战基于python语言(二: 编写脚本)
    Gparted硬盘管理工具
    selenium自动化实战基于python语言(一: 编写脚本)
    selenium自动化实战基于python语言(环境搭建)
    使Eclipse代码自动提示
    String相关的常见问题
    在Eclipse中查看JDK类库的源代码
  • 原文地址:https://www.cnblogs.com/jiangxifanzhouyudu/p/6692656.html
Copyright © 2011-2022 走看看