陣列容器(ArrayList)設計與Java實現,看完這個你不懂ArrayList,你找我!!!

2022-07-07 06:00:55

陣列容器(ArrayList)設計與Java實現

本篇文章主要跟大家介紹我們最常使用的一種容器ArrayListVector的原理,並且自己使用Java實現自己的陣列容器MyArrayList,讓自己寫的容器能像ArrayList那樣工作。在本篇文章當中首先介紹ArrayList的一些基本功能,然後去分析我們自己的容器MyArrayList應該如何進行設計,同時分析我們自己的具體實現方法,最後進行程式碼介紹!!!

ArrayList為我們提供了哪些功能?

我們來看一個簡單的程式碼,隨機生成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提供給我們的最基本的功能——陣列(這個好像是廢話,我們的標題就是陣列容器