zoukankan      html  css  js  c++  java
  • 三、List接口的主要实现类

    1.Vector类
    Vector类是从jdk1.0开始出现的,从 Java 2 平台 v1.2 开始,此类改进为可以实现List接口,使它成为集合框架中的一员。
     
              Vector v = new Vector();

              v.add("java01");
              v.add("java02");
              v.add("java03");
              v.add("java04");

              Enumeration en = v.elements();

              while(en.hasMoreElements())
              {
                   System.out.println(en.nextElement());
              }
    其中Enumeration是Vector取出元素的特有方式。后来因为名称以及方法的名称都过长,被迭代器取代了。Vertor底层是基于数组实现的,且其是同步的。但是添加到一定量的元素后,再添加元素其长度会100%扩容(原来的长度10变成20),而ArrayList底层也是基于数组实现的,但其只会小幅扩容(原数组长度*3 除2再加1,更节约空间)。Vector被ArrayList取代。
     
    2.ArrayList
     内部是数组数据结构,是不同步的。替代了Vector。查询的速度快
     
    3.LinkedList
    内部是链表数据结构,是不同步的。增删元素的速度很快。(链表数据结构)
    特有方法:
         addFirst();
         addLast():
         =========jdk1.6==========
         offerFirst();
         offetLast();
        
        
         getFirst();.//获取但不移除,如果链表为空,抛出NoSuchElementException.
         getLast();
         =========jdk1.6==========
         peekFirst();//获取但不移除,如果链表为空,返回null.
         peekLast():
        
         removeFirst();//获取并移除,如果链表为空,抛出NoSuchElementException.
         removeLast();
         =========jdk1.6==========
         pollFirst();//获取并移除,如果链表为空,返回null.
         pollLast();

    总结:
    List:
         |--Vector:内部是数组数据结构,是同步的。增删,查询都很慢!
         |--ArrayList:内部是数组数据结构,是不同步的。替代了Vector。查询的速度快。
         |--LinkedList:内部是链表数据结构,是不同步的。增删元素的速度很快。
  • 相关阅读:
    一篇就搞懂Mysql存储引擎和索引的文章
    ShardedJedisPipeline中sync()和syncAndReturnAll()区别
    17.win10安装Nginx及负载均衡配置,实现代理访问内网机器
    iDempiere 使用指南 系统安装 以及 virtualbox虚拟机下载
    程序员学数学【整理】
    element 表单校验
    draggable 拖拽列表排序(指定被拖拽的子元素)
    导出多个表的excel文件
    js自定义鼠标的图片
    table 导出简单的excel
  • 原文地址:https://www.cnblogs.com/lzxl/p/4308832.html
Copyright © 2011-2022 走看看