JavaArrayList

Java 集合框架

ArrayList 類是一個可以動態(tài)修改的數(shù)組脓鹃,與普通數(shù)組的區(qū)別就是它是沒有固定大小的限制耕拷,我們可以添加或刪除元素。

ArrayList 繼承了 AbstractList ,并實現(xiàn)了 List 接口。

ArrayList 類位于 java.util 包中弓熏,使用前需要引入它,語法格式如下:

import java.util.ArrayList; // 引入 ArrayList 類

ArrayList<E> objectName =new

ArrayList<>();  // 初始化

E: 泛型數(shù)據(jù)類型糠睡,用于設置 objectName 的數(shù)據(jù)類型挽鞠,只能為引用數(shù)據(jù)類型。

objectName: 對象名狈孔。

ArrayList 是一個數(shù)組隊列信认,提供了相關的添加、刪除均抽、修改嫁赏、遍歷等功能。

添加元素

ArrayList 類提供了很多有用的方法油挥,添加元素到 ArrayList 可以使用 add() 方法:

實例

importjava.util.ArrayList;publicclassRunoobTest{

publicstaticvoidmain(String[]args){

ArrayList<String>sites=newArrayList<String>();

sites.add("Google");

sites.add("Runoob");

sites.add("Taobao");

sites.add("Weibo");

System.out.println(sites);

? }

}

以上實例潦蝇,執(zhí)行輸出結果為:

[Google, Runoob, Taobao, Weibo]

訪問元素

訪問 ArrayList 中的元素可以使用 get() 方法:

實例

importjava.util.ArrayList;publicclassRunoobTest{ publicstaticvoidmain(String[]args){? ? ArrayList<String>sites=newArrayList<String>();? ? sites.add("Google");? ?

sites.add("Runoob");? ?

sites.add("Taobao");? ?

sites.add("Weibo");?

System.out.println(sites.get(1));// 訪問第二個元素

}}

注意:數(shù)組的索引值從 0 開始款熬。

以上實例,執(zhí)行輸出結果為:

Runoob

修改元素

如果要修改 ArrayList 中的元素可以使用 set() 方法:

實例

importjava.util.ArrayList;publicclassRunoobTest{ publicstaticvoidmain(String[]args){? ? ArrayList<String>sites=newArrayList<String>();? ? sites.add("Google");? ?

sites.add("Runoob");? ?

sites.add("Taobao");? ?

sites.add("Weibo");? ?

sites.set(2,"Wiki");// 第一個參數(shù)為索引位置护蝶,第二個為要修改的值? System.out.println(sites);

}}

以上實例华烟,執(zhí)行輸出結果為:

[Google, Runoob, Wiki, Weibo]

刪除元素

如果要刪除 ArrayList 中的元素可以使用 remove() 方法:

實例

importjava.util.ArrayList;publicclassRunoobTest{ publicstaticvoidmain(String[]args){? ? ArrayList<String>sites=newArrayList<String>();? ? sites.add("Google");? ?

sites.add("Runoob");? ?

sites.add("Taobao");? ?

sites.add("Weibo");? ?

sites.remove(3);// 刪除第四個元素?

System.out.println(sites);

}}

以上實例,執(zhí)行輸出結果為:

[Google, Runoob, Taobao]

計算大小

如果要計算 ArrayList 中的元素數(shù)量可以使用 size() 方法:

實例

importjava.util.ArrayList;publicclassRunoobTest{ publicstaticvoidmain(String[]args){? ? ArrayList<String>sites=newArrayList<String>();? ? sites.add("Google");? ?

sites.add("Runoob");? ?

sites.add("Taobao");? ?

sites.add("Weibo");?

System.out.println(sites.size());

}}

以上實例持灰,執(zhí)行輸出結果為:

4

迭代數(shù)組列表

我們可以使用 for 來迭代數(shù)組列表中的元素:

實例

importjava.util.ArrayList;publicclassRunoobTest{ publicstaticvoidmain(String[]args){? ? ArrayList<String>sites=newArrayList<String>();? ? sites.add("Google");? ?

sites.add("Runoob");? ?

sites.add("Taobao");? ?

sites.add("Weibo");?

for(inti=0;i<sites.size();i++){? ? System.out.println(sites.get(i));?

}

}}

以上實例,執(zhí)行輸出結果為:

Google

Runoob

Taobao

Weibo

也可以使用 for-each 來迭代元素:

實例

importjava.util.ArrayList;publicclassRunoobTest{ publicstaticvoidmain(String[]args){? ? ArrayList<String>sites=newArrayList<String>();? ? sites.add("Google");? ?

sites.add("Runoob");? ?

sites.add("Taobao");? ?

sites.add("Weibo");?

for(Stringi:sites){? ?

System.out.println(i);?

}

}}

以上實例负饲,執(zhí)行輸出結果為:

Google

Runoob

Taobao

Weibo

其他的引用類型

ArrayList 中的元素實際上是對象堤魁,在以上實例中,數(shù)組列表元素都是字符串 String 類型返十。

如果我們要存儲其他類型妥泉,而 <E> 只能為引用數(shù)據(jù)類型,這時我們就需要使用到基本類型的包裝類洞坑。

基本類型對應的包裝類表如下:

基本類型引用類型booleanBooleanbyteByteshortShortintIntegerlongLongfloatFloatdoubleDoublecharCharacter

此外盲链,BigInteger、BigDecimal 用于高精度的運算迟杂,BigInteger 支持任意精度的整數(shù)刽沾,也是引用類型,但它們沒有相對應的基本類型排拷。

ArrayList<Integer> li=new Arraylist<>();? ? // 存放整數(shù)元素

ArrayList<Character> li=new Arraylist<>();? // 存放字符元素

以下實例使用 ArrayList 存儲數(shù)字(使用 Integer 類型):

實例

importjava.util.ArrayList;publicclassRunoobTest{ publicstaticvoidmain(String[]args){? ? ArrayList<Integer>myNumbers=newArrayList<Integer>();? ? myNumbers.add(10);? ?

myNumbers.add(15);? ?

myNumbers.add(20);? ?

myNumbers.add(25);?

for(inti:myNumbers){? ?

System.out.println(i);?

}

}}

以上實例侧漓,執(zhí)行輸出結果為:

10

15

20

25

ArrayList 排序

Collections 類也是一個非常有用的類,位于 java.util 包中监氢,提供的 sort() 方法可以對字符或數(shù)字列表進行排序布蔗。

以下實例對字母進行排序:

實例

importjava.util.ArrayList;importjava.util.Collections;// 引入 Collections 類publicclassRunoobTest{ publicstaticvoidmain(String[]args){? ? ArrayList<String>sites=newArrayList<String>();? ? sites.add("Taobao");? ?

sites.add("Wiki");? ?

sites.add("Runoob");? ?

sites.add("Weibo");? ?

sites.add("Google");?

Collections.sort(sites);// 字母排序?

for(Stringi:sites){? ?

System.out.println(i);?

}

}}

以上實例,執(zhí)行輸出結果為:

Google

Runoob

Taobao

Weibo

Wiki

以下實例對數(shù)字進行排序:

實例

importjava.util.ArrayList;importjava.util.Collections;// 引入

Collections 類publicclassRunoobTest{

publicstaticvoidmain(String[]args){? ?

ArrayList<Integer>myNumbers=newArrayList<Integer>();?

myNumbers.add(33);? ?

myNumbers.add(15);? ?

myNumbers.add(20);? ?

myNumbers.add(34);? ?

myNumbers.add(8);? ?

myNumbers.add(12);?

Collections.sort(myNumbers);// 數(shù)字排序? for(inti:myNumbers){

System.out.println(i);?

}

}}

以上實例浪腐,執(zhí)行輸出結果為:

8

12

15

20

33

34

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末纵揍,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子议街,更是在濱河造成了極大的恐慌泽谨,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件傍睹,死亡現(xiàn)場離奇詭異隔盛,居然都是意外死亡,警方通過查閱死者的電腦和手機拾稳,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進店門吮炕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人访得,你說我怎么就攤上這事龙亲∩掳迹” “怎么了?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵鳄炉,是天一觀的道長杜耙。 經(jīng)常有香客問我,道長拂盯,這世上最難降的妖魔是什么佑女? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任,我火速辦了婚禮谈竿,結果婚禮上团驱,老公的妹妹穿的比我還像新娘。我一直安慰自己空凸,他們只是感情好嚎花,可當我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著呀洲,像睡著了一般紊选。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上道逗,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天兵罢,我揣著相機與錄音,去河邊找鬼憔辫。 笑死趣些,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的贰您。 我是一名探鬼主播坏平,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼锦亦!你這毒婦竟也來了舶替?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤杠园,失蹤者是張志新(化名)和其女友劉穎顾瞪,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體抛蚁,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡陈醒,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了瞧甩。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片钉跷。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖肚逸,靈堂內(nèi)的尸體忽然破棺而出爷辙,到底是詐尸還是另有隱情彬坏,我是刑警寧澤,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布膝晾,位于F島的核電站栓始,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏血当。R本人自食惡果不足惜幻赚,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望歹颓。 院中可真熱鬧坯屿,春花似錦、人聲如沸巍扛。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撤奸。三九已至,卻和暖如春喊括,著一層夾襖步出監(jiān)牢的瞬間胧瓜,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工郑什, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留府喳,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓蘑拯,卻偏偏與公主長得像钝满,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子申窘,可洞房花燭夜當晚...
    茶點故事閱讀 44,960評論 2 355