zoukankan      html  css  js  c++  java
  • java-集合1

    1.Iterator接口,有hasNext(),next(),remove()方法

    2.List 接口继承Collection ,Collection接口 继承 Iterable

      a.ArrayList

      

    //一个Object数组,其中transient定义为不能序列化
    private transient Object[] elementData;
    //数组的长度
     private int size;


    // 添加元素完后,size+1,

    public boolean add(E e) {
    ensureCapacityInternal(size + 1); // Increments modCount!!
    elementData[size++] = e;
    return true;
    }

    private void ensureCapacityInternal(int minCapacity) {
    modCount++;
    // overflow-conscious code

    // 判断当前容量是否足够,如果不够,就扩容
    if (minCapacity - elementData.length > 0)
    grow(minCapacity);
    }

    private void grow(int minCapacity) {
    // overflow-conscious code
    int oldCapacity = elementData.length;

    //新容量大小等于 旧容量+旧容量/2
    int newCapacity = oldCapacity + (oldCapacity >> 1);
    if (newCapacity - minCapacity < 0)
    newCapacity = minCapacity;
    if (newCapacity - MAX_ARRAY_SIZE > 0)
    newCapacity = hugeCapacity(minCapacity);
    // minCapacity is usually close to size, so this is a win:
    elementData = Arrays.copyOf(elementData, newCapacity);
    }

    public static <T,U> T[] copyOf(U[] original, int newLength, Class<? extends T[]> newType) {
    T[] copy = ((Object)newType == (Object)Object[].class)
    ? (T[]) new Object[newLength]
    : (T[]) Array.newInstance(newType.getComponentType(), newLength);

    //通过此方法拷贝一个新的对象数组,
    System.arraycopy(original, 0, copy, 0,
    Math.min(original.length, newLength));
    return copy;
    }

    // 每一个实现类都实现了一个自己的迭代器

    private class Itr implements Iterator<E> 



          b.LinkedList 双向链表

  • 相关阅读:
    PHP 单例 工厂模式 类的重载 抽象 接口
    上传文件
    ThinkPHP3.2中if标签
    JS闭包特性 运算符 DOM操作
    循环数组 连接数据库 AJAX
    ThinkPHP
    TP框架
    MVC框架
    类的自动加载,静态属性静态方法
    魔术方法__get()和set函数
  • 原文地址:https://www.cnblogs.com/suixin84/p/6743138.html
Copyright © 2011-2022 走看看