美文网首页
Java数据结构总结(一)

Java数据结构总结(一)

作者: 东邪Zzz | 来源:发表于2019-07-11 15:51 被阅读0次

List (有序可重复)

List列表允许存储相同元素,插入元素和按照下标获取元素方便,具体实现有ArrayList,LinkedList和Vector

  • ArrayList 底层基于数组实现,按顺序存储元素以及快速按照元素下标进行获取元素,不可同步的;
  • 而Vector底层也是数组,可进行同步操作,在多线程环境下可以使用;
  • LikedList是基于链表形式

1. ArrayList

ArrayList继承AbstractList,实现了List<E>, RandomAccess, Cloneable, java.io.Serializable接口;


image.png

1.1构造方法

它的构造方法有三个:


image.png
image.png
image.png

第一个我们可以传入一个int值,来初始化我们ArrayList的初始容量,如:


image.png
第二个是我们不传入初始容量,它会为我们默认构造一个初始容量为10的数组
第三个我们可以传入一个列表

1.2相关方法

  • add()


    image.png

    在添加数据之前,先进行了扩容,然后在数组末尾添加元素


    image.png
    image.png
    image.png

    容量的拓展将导致数组元素的复制,多次拓展容量将执行多次整个数组内容的复制。若提前能大致判断list的长度,调用ensureCapacity调整容量,将有效的提高运行速度。
    可以理解提前分配好空间可以提高运行速度,但是测试发现提高的并不是很大,而且若list原本数据量就不会很大效果将更不明显。

  • add(int index,E element )
public void add(int index, E element) {
        rangeCheckForAdd(index);//检查index是否越界
        ensureCapacityInternal(size + 1);  // 确保容量
        System.arraycopy(elementData, index, elementData, index + 1,//将index以后的元素后移一个
                         size - index);
        elementData[index] = element;
        size++;
    }
    private void rangeCheckForAdd(int index) {
        if (index > size || index < 0)//元素可以添加在最后尾端
            throw new IndexOutOfBoundsException(outOfBoundsMsg(index));
    }
    //本地的C/C++库方法,直接操纵内存,速度更快
    public static native void arraycopy(Object src,  int  srcPos,
                                        Object dest, int destPos,
                                        int length);

相关文章

  • 2020-03-16

    网络原理资源和学习;Java;数据结构; 总结:中午没睡着,晚上会有影响

  • Java数据结构总结(一)

    List (有序可重复) List列表允许存储相同元素,插入元素和按照下标获取元素方便,具体实现有ArrayLis...

  • Java数据结构算法(二)栈和队列

    本文旨作于收集整理使用!! 导航 Java数据结构算法(一)链表 Java数据结构算法(三)树 Java数据结构算...

  • Java(Android)数据结构汇总 -- 总纲

    目录:Java(Android)数据结构汇总(一)-- List(上)Java(Android)数据结构汇总(一)...

  • Java 8新特性总结

    Java 8 新特性总结:HashMap新增红黑树的数据结构,ConcurentHashMap几乎重写了一遍,之前...

  • Java 数据结构之 Map 学习总结

    Java 数据结构之 Map 学习总结 今天总结学习一下键值映射关系Map。 先了解下Map Map 是一种把键对...

  • java数据结构总结

    一、ArrayList Arraylist是list接口的实现类,它是支持根据需要而动态增长的数组。java中标准...

  • 数据结构与算法——常用数据结构及其Java实现

    本文采用Java语言来进行描述,帮大家好好梳理一下数据结构与算法,在工作和面试中用的上。亦即总结常见的的数据结构,...

  • Java数据结构

    Java 数据结构 Java工具包提供了强大的数据结构。在Java中的数据结构主要包括以下几种接口和类: 枚举(E...

  • Java数据结构算法(五)排序

    算法这点粗略整理一下,后面完善 Java数据结构算法(一)链表 Java数据结构算法(二)栈和队列 Java数据结...

网友评论

      本文标题:Java数据结构总结(一)

      本文链接:https://www.haomeiwen.com/subject/fviayqtx.html