本篇文章主要跟大家介紹我們最常使用的一種容器ArrayList
、Vector
的原理,並且自己使用Java
實現自己的陣列容器MyArrayList
,讓自己寫的容器能像ArrayList
那樣工作。在本篇文章當中首先介紹ArrayList
的一些基本功能,然後去分析我們自己的容器MyArrayList
應該如何進行設計,同時分析我們自己的具體實現方法,最後進行程式碼介紹!!!
我們來看一個簡單的程式碼,隨機生成100個亂數,檢視生成亂數當中是否存在50這個數。
public class MyArrayList {
public static void main(String[] args) {
Random random = new Random();
ArrayList<Integer> list = new ArrayList<>();
for (int i = 0; i < 100; i++) {
list.add(random.nextInt(5000));
}
for (int i = 0; i < 100; i++) {
if (list.get(i) == 50) {
System.out.println("包含資料 50");
}
}
list.set(5, 1000);// 設定下標為5的資料為100
list.remove(5);// 刪除下標為5的資料
list.remove(new Integer(888));// 刪除容器當中的第一個值為5的資料
}
}
上述程式碼包含了ArrayList
最基本的一個功能,一個是add
方法,向陣列容器當中加入資料,另外一個方法是get
從容器當中拿出資料,set
方法改變容器裡的資料,remove
方法刪除容器當中的資料。ArrayList
的很多其他的方法都是圍繞這四個最基本的方法展開的,因此我們在這裡不仔細介紹其他的方法了,後面我們自己實現的時候遇到問題的時候自然會需要設計相應的方法,然後我們進行解決即可。
現在我們就需要去設計一個陣列容器實現「增刪改查」這四個基本功能。
首先明白一點我們需要使用什麼工具去實現這樣一個容器。我們手裡有的工具就是Java
提供給我們的最基本的功能——陣列(這個好像是廢話,我們的標題就是陣列容器