国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

ArrayList的實(shí)現(xiàn)

simon_chen / 1225人閱讀

package com.nasuf.arraylist;

import java.util.Iterator;
import java.util.NoSuchElementException;

public class MyArrayList implements Iterable {
    
    private static final int DEFAULT_CAPICITY = 10;
    
    private int theSize;
    private AnyType[] theItems;
    
    public MyArrayList() {
        clear();
    }
    
    public void clear() {
        theSize = 0;
        ensureCapacity(DEFAULT_CAPICITY);
    }
    
    public int size() {
        return theSize;
    }
    
    public boolean isEmpty() {
        return size() == 0;
    }
    
    public void trimToSize() {
        ensureCapacity(size());
    }
    
    public AnyType get(int idx) {
        if (idx < 0 || idx >= size()) 
            throw new ArrayIndexOutOfBoundsException();
        return theItems[idx];
    }
    
    public AnyType set(int idx, AnyType newVal) {
        if (idx < 0 || idx >= size()) 
            throw new ArrayIndexOutOfBoundsException();
        AnyType old = theItems[idx];
        theItems[idx] = newVal;
        return old;
    }

    public void ensureCapacity(int newCapacity) {
        if (newCapacity < theSize)
            return;
        AnyType [] old = theItems;
        theItems = (AnyType []) new Object[ newCapacity ];
        for (int i=0; iidx; i--)
            theItems[i] = theItems[i=1];
        theItems[idx] = x;
        theSize ++;
    }
    
    public AnyType remove(int idx) {
        AnyType removedItem = theItems[idx];
        for(int i=idx; i iterator() {
        return new ArrayListIterator();
    }
    
    private class ArrayListIterator implements Iterator {

        private int current = 0;
        
        @Override
        public boolean hasNext() {
            return current < size();
        }

        @Override
        public AnyType next() {
            if (!hasNext()) 
                throw new NoSuchElementException();
            return theItems[current++];
        }
        
        public void remove() {
            MyArrayList.this.remove(--current);
        }
        
    }

}

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/67382.html

相關(guān)文章

  • Java集合源碼分析系列-(一)ArrayList源碼剖析

    摘要:需要注意的是,通過構(gòu)造函數(shù)定義初始量是動態(tài)數(shù)組的實(shí)際大小。帶容量的構(gòu)造函數(shù)新建一個容量為的數(shù)組默認(rèn)構(gòu)造函數(shù),默認(rèn)為空構(gòu)造一個包含指定元素的第一個構(gòu)造方法使用提供的來初始化數(shù)組的大小。 前言 今天介紹經(jīng)常使用的一個Java集合類——ArrayList(基于JDK1.8.0_121)。ArrayList在工作和日常面試中經(jīng)常被使用或者提到。總的來說,工作中使用ArrayList主要是因?yàn)閯?..

    Miyang 評論0 收藏0
  • Java集合之ArrayList源碼解析

    摘要:數(shù)組的大小會根據(jù)容量的增長而動態(tài)的增長,具體的增長方式請看這里構(gòu)造函數(shù)提供了三種方式的構(gòu)造器。這些元素按照該的迭代器返回的順序排列的。 原文地址 ArrayList ArrayList是List接口的 可變數(shù)組的實(shí)現(xiàn)。實(shí)現(xiàn)了所有可選列表操作,并允許包括 null 在內(nèi)的所有元素。除了實(shí)現(xiàn) List接口外,此類還提供一些方法來操作內(nèi)部用來存儲列表的數(shù)組的大小。ArrayList繼承自 A...

    W4n9Hu1 評論0 收藏0
  • ArrayList源碼分析

    摘要:表明該類具有序列化功能。關(guān)鍵屬性默認(rèn)初始容量大小指定該容量為時,返回該空數(shù)組。構(gòu)造一個包含指定的元素的列表,這些元素是按照該的迭代器返回它們的順序排列的。對擴(kuò)容后的容量進(jìn)行判斷,如果大于允許的最大容量,則將容量再次調(diào)整為。 總覽 showImg(https://segmentfault.com/img/bVbsm9v?w=1232&h=643); 底層:ArrayList底層是一個數(shù)...

    boredream 評論0 收藏0
  • 集合框架源碼學(xué)習(xí)之ArrayList

    摘要:用戶自己指定容量創(chuàng)建大小的數(shù)組創(chuàng)建空數(shù)組默認(rèn)構(gòu)造函數(shù),其默認(rèn)初始容量為構(gòu)造一個包含指定集合的元素的列表,按照它們由集合的迭代器返回的順序。以正確的順序返回該列表中的元素的迭代器。此方法充當(dāng)基于陣列和基于集合的之間的橋梁。 目錄: 0-0-1. 前言 0-0-2. 集合框架知識回顧 0-0-3. ArrayList簡介 0-0-4. ArrayList核心源碼 0-0-5. Ar...

    BLUE 評論0 收藏0
  • Week 2 - Java 容器 - 詳細(xì)剖析 List 之 ArrayList, Vector,

    摘要:底層使用的是雙向鏈表數(shù)據(jù)結(jié)構(gòu)之前為循環(huán)鏈表,取消了循環(huán)。快速隨機(jī)訪問就是通過元素的序號快速獲取元素對象對應(yīng)于方法。而接口就是用來標(biāo)識該類支持快速隨機(jī)訪問。僅僅是起標(biāo)識作用。,中文名為雙端隊(duì)列。不同的是,是線程安全的,內(nèi)部使用了進(jìn)行同步。 前言 學(xué)習(xí)情況記錄 時間:week 2 SMART子目標(biāo) :Java 容器 記錄在學(xué)習(xí)Java容器 知識點(diǎn)中,關(guān)于List的需要重點(diǎn)記錄的知識點(diǎn)。...

    MartinDai 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<