zoukankan      html  css  js  c++  java
  • java vector类 数组 链表 List类

    集合框架(Vector的特有功能)
    * A:Vector类概述

    * B:Vector类特有功能

    * public void addElement(E obj)
    * public E elementAt(int index)
    * public Enumeration elements()

    * C:案例演示 

    * Vector的迭代

    Vector v = new Vector(); //创建集合对象,List的子类
    v.addElement("a");
    v.addElement("b");
    v.addElement("c");
    v.addElement("d");

    //Vector迭代
    Enumeration en = v.elements(); //获取枚举
    while(en.hasMoreElements()) { //判断集合中是否有元素
    System.out.println(en.nextElement());//获取集合中的元素
    }

    ==========================================================================================

    集合框架(数据结构之数组和链表)


    * A:数组
    * 查询快修改也快
    * 增删慢
    * B:链表
    * 查询慢,修改也慢
    * 增删快

    集合框架(List的三个子类的特点)
    * A:List的三个子类的特点
    *
    ArrayList:
    底层数据结构是数组,查询快,增删慢。
    线程不安全,效率高。


    Vector:
    底层数据结构是数组,查询快,增删慢。
    线程安全,效率低。


    Vector相对ArrayList查询慢(线程安全的)


    Vector相对LinkedList增删慢(数组结构)


    LinkedList:
    底层数据结构是链表,查询慢,增删快。
    线程不安全,效率高。

    LinkedList根据索引取出元素  源码:

    Node<E> node(int index) {
    // assert isElementIndex(index);

    if (index < (size >> 1)) {
    Node<E> x = first;
    for (int i = 0; i < index; i++)
    x = x.next;
    return x;
    } else {
    Node<E> x = last;
    for (int i = size - 1; i > index; i--)
    x = x.prev;
    return x;
    }
    }

    Vector和ArrayList的区别
    Vector是线程安全的,效率低
    ArrayList是线程不安全的,效率高


    共同点:都是数组实现的
    ArrayList和LinkedList的区别
    ArrayList底层是数组结果,查询和修改快
    LinkedList底层是链表结构的,增和删比较快,查询和修改比较慢


    共同点:都是线程不安全的


    * B:List有三个儿子,我们到底使用谁呢?
    查询多用ArrayList
    增删多用LinkedList
    如果都多ArrayList

  • 相关阅读:
    esp32(M5STACK)在线体验(Ubuntu)
    esp32(M5STACK)程序烧写(Ubuntu)
    在Ubuntu环境下搭建esp32开发环境
    markdown让文字居中和带颜色
    Doxyfile中插入图片
    System.load 与 System.loadLibrary 的使用
    常见mysql的数据迁移
    mysql中有关树的函数
    spring整合quartz实现动态定时器
    javaweb项目中发布webservices服务
  • 原文地址:https://www.cnblogs.com/yimian/p/6512905.html
Copyright © 2011-2022 走看看