教女朋友學Android -- 數組:Array和ArrayList

一、普通對象

People mxm = new People("Mo Xumin",24);
People hyx = new People("Huang Yingxue",22);
  • 上面這兩行代碼,是我最開始給你講的,創建兩個個 'People' 對象。
  • 先簡單復習一下,'People' 是 'class name'(類名),'mxm' 或 'hyx' 是變量名,代表兩個 'People' 類型的對象。

他們在內存里是兩個單獨的對象,在內存里的狀態如下圖所示:

  • 每個方框代表一個 'People' 類型的對象,這時內存里有兩個獨立的 'People' 對象,一個的變量名是 'mxm',另一個的變量名是 'hyx'。

二、Array

People[] allpeoples = new People[5];
allpeoples[0] = mxm;
allpeoples[1] = hyx;

allpeoples[0].getName(); // 拿到值“Mo Xumin”
allpeoples[1].getName(); // 拿到值“Huang Yingxue”

上面的代碼,是接著第一部分

  • 'People' 后面加了個 [ ],代表這是一個 'People' 類型的數組,'allpeoples' 是這個數組的變量名;
  • 'allpeoples' 是一個包含了 5 個 'People' 的數組;
  • 'allpeoples[0]' 可以訪問該數組的第 0 個位置,把 'mxm' 放到該數組的第 0 個位置;
  • 'allpeoples[1]' 可以訪問該數組的第 1 個位置,把 'hyx' 放到該數組的第 1 個位置;

執行完這段代碼后,內存的情況如下圖:

  • 5 個連在一起的方框,也就是有 5 個連在一起的 'People' 類型的對象;
  • 這 5 個方框連在一起,就是 'allpeoples' 代表的東西;
  • 而其中每個單獨的方框,都是一個 'People' 類型的對象;
  • 其中第一個 'People' 方框是 'mxm'(因為我們執行了 'allpeoples[0] = mxm');
  • 第二個 'People' 方框是 'hyx'(因為我們執行了 'allpeoples[1] = hyx');

三、ArrayList

這個只需要簡單理解,和上面Array的三行代碼一一對應的關系如下:

  • Array 版
People[] allpeoples = new People[5];
allpeoples[0] = mxm; // 將數組第0個元素賦值為mxm
allpeoples[1] = hyx; // 將數組第1個元素賦值為hyx

allpeoples[0].getName(); // 拿到值“Mo Xumin”
allpeoples[1].getName(); // 拿到值“Huang Yingxue”
  • ArrayList 版
ArrayList<People> allpeoples = new ArrayList<People>(5);
allpeoples.add(mxm); // 將數組第0個元素賦值為mxm
allpeoples.add(hyx); // 將數組第1個元素賦值為hyx

allpeoples.get(0).getName(); // 拿到值“Mo Xumin”
allpeoples.get(1).getName(); // 拿到值“Huang Yingxue”
  • 你只需要理解到這個,ArrayList相當于把 'allpeoples[0]' 這種訪問方式,改成了add()和get()函數
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 國家電網公司企業標準(Q/GDW)- 面向對象的用電信息數據交換協議 - 報批稿:20170802 前言: 排版 ...
    庭說閱讀 11,166評論 6 13
  • 1. Java基礎部分 基礎部分的順序:基本語法,類相關的語法,內部類的語法,繼承相關的語法,異常的語法,線程的語...
    子非魚_t_閱讀 31,766評論 18 399
  • 小侄女滿月了。 搖籃里睡得香甜的小丫頭皮膚微微泛青,軟若無骨的手心兒輕輕揪住被角,渾然不覺來看她的親友長輩換了一批...
    王家人寧閱讀 147評論 0 0
  • 文/小珞 從《太極宗師》到《戰狼》的這么多年,,我一直不喜歡吳京。 就像我不喜歡成龍一樣,沒有什么具體的理由。 當...
    小珞的碎碎念閱讀 298評論 1 3