package com.nasuf.arraylist; import java.util.Iterator; import java.util.NoSuchElementException; public class MyArrayListimplements 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; i idx; 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
摘要:需要注意的是,通過構(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)閯?..
摘要:數(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...
摘要:表明該類具有序列化功能。關(guān)鍵屬性默認(rèn)初始容量大小指定該容量為時,返回該空數(shù)組。構(gòu)造一個包含指定的元素的列表,這些元素是按照該的迭代器返回它們的順序排列的。對擴(kuò)容后的容量進(jìn)行判斷,如果大于允許的最大容量,則將容量再次調(diào)整為。 總覽 showImg(https://segmentfault.com/img/bVbsm9v?w=1232&h=643); 底層:ArrayList底層是一個數(shù)...
摘要:用戶自己指定容量創(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...
摘要:底層使用的是雙向鏈表數(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)。...
閱讀 3456·2021-09-08 09:36
閱讀 2534·2019-08-30 15:54
閱讀 2345·2019-08-30 15:54
閱讀 1762·2019-08-30 15:44
閱讀 2379·2019-08-26 14:04
閱讀 2437·2019-08-26 14:01
閱讀 2869·2019-08-26 13:58
閱讀 1315·2019-08-26 13:47