1. 程式人生 > 實用技巧 >00019.02 手動實現動態陣列(邏輯結構、ArrayList)

00019.02 手動實現動態陣列(邏輯結構、ArrayList)

系列文章目錄

文章目錄

前言

資料結構:
邏輯結構是針對程式設計師的角度來說的
物理結構是針對程式設計師如何實現這個邏輯結構的角度來說的

一、動態陣列

物理結構:陣列
邏輯結構:動態陣列
對於使用者來說,可以擴容,自動記錄有效的元素個數
MyArrayList:
MyArrayList我們自己設計的一種資料結構,一種邏輯結構,當別人用我這個MyArrayList的物件時,就是一個容器物件

二、使用步驟

在這裡插入圖片描述
在這裡插入圖片描述
我們要它具備什麼能力,那麼就需要給它新增方法
在這裡插入圖片描述
在這裡插入圖片描述
在這裡插入圖片描述
然後使用者在使用的時候就可以不斷的往裡面加了
在這裡插入圖片描述
可以繼續優化
在這裡插入圖片描述
使用者的呼叫如下:
在這裡插入圖片描述


在這裡插入圖片描述
在這裡插入圖片描述
由於我們多次使用到了這個方法,所以我們按下快捷鍵Alt+shift+M,可以實現快速操作,將該方法提取出來

在這裡插入圖片描述
在這裡插入圖片描述
然後測試就行了
在這裡插入圖片描述

在這裡插入圖片描述
在這裡插入圖片描述
刪除某個位置的元素
在這裡插入圖片描述
在這裡插入圖片描述

呼叫,然後看效果
在這裡插入圖片描述
在這裡插入圖片描述
如果是null怎麼處理,優化後的程式碼

在這裡插入圖片描述
執行後的效果如下:
在這裡插入圖片描述

如果刪除某個元素,但是我們不知道下標,如果有重複的,我們只刪除第一個,怎麼實現
在這裡插入圖片描述
如果要替換某個方法裡面的某個元素,怎麼寫?
在這裡插入圖片描述

總結

1、大量使用到了System.arraycopy()等方法,需要深刻理解
2、自己寫一遍,有助於看懂原始碼