Java學(xué)習(xí)筆記(2)第九節(jié)--ArrayList

對(duì)于數(shù)組而言敞斋,長(zhǎng)度不可改變。

對(duì)于ArrayList而言廊遍,長(zhǎng)度是可以改變的。

標(biāo)準(zhǔn)形式是:ArrayList<E>,有泛型的數(shù)據(jù)集合贩挣。(泛型只能是引用類(lèi)型喉前,不能是基本數(shù)據(jù)類(lèi)型)

1.打用缓ā:

????????之前直接打印數(shù)組,得到的是數(shù)組的地址值卵迂。但是直接打印ArrayList裕便,得到的是里面的內(nèi)容。如果內(nèi)容為空狭握,則輸出[ ],如果不為空闪金,則輸出內(nèi)容疯溺。

代碼示例:

public class ArrayList01 {

public static void main(String[] args) {

????????ArrayList list =new ArrayList<>();

? ? ? ? System.out.println(list);

? ? ? ? System.out.println("===================");

? ? ? ? list.add("胡歌");

? ? ? ? System.out.println(list);

? ? }

}

運(yùn)行結(jié)果

2.常用方法:

? ? ? ? list.add()方法:往ArrayList集合里面添加數(shù)據(jù)论颅。

? ? ? ? list.get(int index);從集合中獲取元素,參數(shù)是索引編號(hào)囱嫩,從0開(kāi)始恃疯。

? ? ? ? list.remove(int index);從集合中刪除元素,參數(shù)是索引編號(hào)墨闲,從0開(kāi)始今妄。

? ? ? ? public int size();獲取集合的長(zhǎng)度,返回值是集合中元素的個(gè)數(shù)

TIP:

? ? ? ? 1.對(duì)于ArrayList集合來(lái)說(shuō)鸳碧,add方法必定成功盾鳞,所以返回值可用可不用。對(duì)于其他集合來(lái)說(shuō)瞻离,則不一定成功腾仅。

代碼示例:

import java.util.ArrayList;

public class ArrayList01 {

public static void main(String[] args) {

????????ArrayList list =new ArrayList<>();

? ? ? ? System.out.println(list);

? ? ? ? System.out.println("==================================");

? ? ? ? list.add("胡歌");? ? //添加數(shù)據(jù)

? ? ? ? System.out.println(list);

? ? ? ? list.add("李逍遙");

? ? ? ? list.add("景天");

? ? ? ? list.add("重樓");

? ? ? ? list.add("飛蓬");

? ? ? ? System.out.println(list);? ? ? //打印集合

? ? ? ? System.out.println("==================================");

? ? ? ? //用get()方法獲取數(shù)據(jù),用泛型接收返回的數(shù)據(jù)

? ? ? ? String name2 = list.get(1);? //下標(biāo)從0開(kāi)始,1代表得到第二個(gè)數(shù)據(jù)

? ? ? ? System.out.println("集合的第二個(gè)數(shù)據(jù)名字是:"+name2);

? ? ? ? System.out.println("==================================");

? ? ? ? //用remove()方法獲取數(shù)據(jù),用泛型接收返回的數(shù)據(jù)

? ? ? ? String deletename1 = list.remove(3);? //下標(biāo)從0開(kāi)始套利,3代表刪除第四個(gè)數(shù)據(jù)

? ? ? ? System.out.println("集合刪除的數(shù)據(jù)名字是:"+deletename1);

? ? ? ? System.out.println(list);

? ? ? ? System.out.println("==================================");

? ? ? ? //獲取集合的長(zhǎng)度尺寸

? ? ? ? int size = list.size();? ? //size有括號(hào)

? ? ? ? System.out.println("集合目前的長(zhǎng)度是:"+size);

? ? }

}

運(yùn)行結(jié)果

3. ArrayList集合添加基本數(shù)據(jù)類(lèi)型的方法

添加方法

特殊:【Integer】整型包裝類(lèi)推励,【Character】字符型包裝類(lèi)

? ? ? ? JDK1.5 +以上支持自動(dòng)裝箱,自動(dòng)拆箱肉迫。

代碼示例:

import java.util.ArrayList;

public class DemoArrayListBasic {

public static void main(String[] args) {

????????//添加整型數(shù)據(jù)

? ? ? ? ArrayList array1 =new ArrayList();

? ? ? ? array1.add(100);

? ? ? ? array1.add(200);

? ? ? ? array1.add(300);

? ? ? ? System.out.println(array1);

? ? ? ? int num2 = array1.get(1);

? ? ? ? System.out.println("集合的二號(hào)元素是:"+num2);

? ? ? ? array1.remove(0);

? ? ? ? System.out.println(array1);

? ? ? ? int size = array1.size();

? ? ? ? System.out.println("整型集合的長(zhǎng)度是:"+size);

? ? }

}

運(yùn)行結(jié)果

4. ArrayList練習(xí):

? ? ? ? 1.隨機(jī)產(chǎn)生10個(gè)1~30的數(shù)字验辞,放到整型集合中,并遍歷輸出

分析:

分析情況

代碼示例:

import java.util.ArrayList;

import java.util.Random;

public class DemoArrayListTest1 {

public static void main(String[] args) {

????????ArrayList list1 =new ArrayList<>();

? ? ? ? Random r =new Random();

? ? ? ? int range =30;

? ? ? ? for (int i =0; i <10; i++) {

? ? ? ? ? ? int num = r.nextInt(range)+1;

? ? ? ? ? ? list1.add(num);

? ? ? ? }

????????System.out.println(list1);

? ? ? ? for(int i =0;i

????????????int getnum=list1.get(i);

? ? ? ? ? ? System.out.println("數(shù)組的第"+(i+1)+"號(hào)元素是:"+getnum);

? ? ? ? }

????}

}

運(yùn)行結(jié)果

? ? ? ? 2.創(chuàng)建4個(gè)學(xué)生對(duì)象添加到數(shù)組中喊衫,并遍歷輸出:

分析:

分析情況

代碼示例:

2.1--標(biāo)準(zhǔn)學(xué)生類(lèi):

public class Student {

private Stringname;

? ? private int age;

? ? public Student(String name, int age) {

????????this.name = name;

? ? ? ? this.age = age;

? ? }

? ? public Student() {

????}

? ? public StringgetName() {

????????return name;

? ? }

????public void setName(String name) {

????????this.name = name;

? ? }

????public int getAge() {

????????return age;

? ? }

????public void setAge(int age) {

????????this.age = age;

? ? }

}

2.2--主函數(shù)測(cè)試:

import java.util.ArrayList;

public class DemoArrayListTest2 {

public static void main(String[] args) {

????????//創(chuàng)建泛型(學(xué)生對(duì)象)數(shù)據(jù)集合

? ? ? ? ArrayList list2 =new ArrayList<>();

? ? ? ? //創(chuàng)建學(xué)生對(duì)象

? ? ? ? Student student01 =new Student("坂田銀時(shí)",28);

? ? ? ? Student student02 =new Student("夜兔神樂(lè)",20);

? ? ? ? Student student03 =new Student("志村新八",21);

? ? ? ? Student student04 =new Student("沖田總悟",21);

? ? ? ? //向集合添加數(shù)據(jù)

? ? ? ? list2.add(student01);

? ? ? ? list2.add(student02);

? ? ? ? list2.add(student03);

? ? ? ? list2.add(student04);

? ? ? ? //遍歷集合

? ? ? ? for (int i =0; i < list2.size(); i++) {

????System.out.println("學(xué)生的姓名是:"+list2.get(i).getName()+"跌造。學(xué)生的年齡是:"+ list2.get(i).getAge());

? ? ? ? }

????}

}

運(yùn)行結(jié)果

? ? ? ? 3.定義打印集合的方式:{元素1@元素2@元素3...}

代碼示例:

3.1--打印方法:

private static void printArray(ArrayList list3) {

????????System.out.print("{");

? ? ? ? for (int i =0; i < list3.size(); i++) {

????????if(i == list3.size()-1){

????????????????System.out.print(list3.get(i)+"}");

? ? ? ? ? ? }else {

????????????????System.out.print(list3.get(i)+"@");

? ? ? ? ? ? }

???????}

????}

}

3.2--主函數(shù)測(cè)試:

import java.util.ArrayList;

public class DemoArrayListTest3 {

public static void main(String[] args) {

????????//創(chuàng)建集合

? ? ? ? ArrayList list3 =new ArrayList<>();

? ? ? ? list3.add("上條當(dāng)麻");

? ? ? ? list3.add("茵蒂克絲");

? ? ? ? list3.add("御坂美琴");

? ? ? ? list3.add("風(fēng)斬冰華");

? ? ? ? list3.add("白井黑子");

? ? ? ? System.out.println(list3);

? ? ? ? printArray(list3);

? ? }

}

運(yùn)行結(jié)果

? ? ? ? 4.大集合存放20個(gè)隨機(jī)的數(shù)字,然后篩選出其中的偶數(shù)放入小集合中族购。用自定義方法實(shí)現(xiàn)篩選

分析:

分析情況

代碼示例:

4.1--小集合方法:

private static ArrayListSmallList(ArrayList list4) {

????????ArrayList list =new ArrayList<>();

? ? ? ? for (int i =0; i < list4.size(); i++) {

????????????????if((list4.get(i)%2)==0){? ? //判斷是否為偶數(shù)

????????????????list.add(list4.get(i));

? ? ? ? ? ? }else{

????????????????continue;

? ? ? ? ? ? }

????????}

????????return list;

? ? }

}

4.2--主函數(shù)測(cè)試:

import java.util.ArrayList;

import java.util.Random;

public class DemoArrayListTest4 {

public static void main(String[] args) {

????????ArrayList list4 =new ArrayList<>();

? ? ? ? ArrayList smalllist =new ArrayList<>();

? ? ? ? Random r =new Random();

? ? ? ? int range =100;

? ? ? ? for (int i =0; i <20; i++) {

????????????int num = r.nextInt(range)+1;

? ? ? ? ? ? list4.add(num);

? ? ? ? }

????????System.out.println(list4);

? ? ? ? smalllist=SmallList(list4);? ? //接收返回的數(shù)組

? ? ? ? System.out.println("偶數(shù)總共有"+smalllist.size()+"個(gè):");

? ? ? ? System.out.println(smalllist);

? ? }

}

運(yùn)行結(jié)果
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末壳贪,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子联四,更是在濱河造成了極大的恐慌撑碴,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,042評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朝墩,死亡現(xiàn)場(chǎng)離奇詭異醉拓,居然都是意外死亡伟姐,警方通過(guò)查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 89,996評(píng)論 2 384
  • 文/潘曉璐 我一進(jìn)店門(mén)亿卤,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)愤兵,“玉大人,你說(shuō)我怎么就攤上這事排吴「讶椋” “怎么了?”我有些...
    開(kāi)封第一講書(shū)人閱讀 156,674評(píng)論 0 345
  • 文/不壞的土叔 我叫張陵钻哩,是天一觀的道長(zhǎng)屹堰。 經(jīng)常有香客問(wèn)我,道長(zhǎng)街氢,這世上最難降的妖魔是什么扯键? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 56,340評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮珊肃,結(jié)果婚禮上荣刑,老公的妹妹穿的比我還像新娘。我一直安慰自己伦乔,他們只是感情好厉亏,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,404評(píng)論 5 384
  • 文/花漫 我一把揭開(kāi)白布。 她就那樣靜靜地躺著烈和,像睡著了一般爱只。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上斥杜,一...
    開(kāi)封第一講書(shū)人閱讀 49,749評(píng)論 1 289
  • 那天虱颗,我揣著相機(jī)與錄音,去河邊找鬼蔗喂。 笑死忘渔,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的缰儿。 我是一名探鬼主播畦粮,決...
    沈念sama閱讀 38,902評(píng)論 3 405
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼乖阵!你這毒婦竟也來(lái)了宣赔?” 一聲冷哼從身側(cè)響起,我...
    開(kāi)封第一講書(shū)人閱讀 37,662評(píng)論 0 266
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤瞪浸,失蹤者是張志新(化名)和其女友劉穎儒将,沒(méi)想到半個(gè)月后,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體对蒲,經(jīng)...
    沈念sama閱讀 44,110評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡钩蚊,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,451評(píng)論 2 325
  • 正文 我和宋清朗相戀三年贡翘,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片砰逻。...
    茶點(diǎn)故事閱讀 38,577評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡鸣驱,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出蝠咆,到底是詐尸還是另有隱情础锐,我是刑警寧澤瞄崇,帶...
    沈念sama閱讀 34,258評(píng)論 4 328
  • 正文 年R本政府宣布井赌,位于F島的核電站伶椿,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏赡茸。R本人自食惡果不足惜缎脾,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,848評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望占卧。 院中可真熱鬧,春花似錦联喘、人聲如沸华蜒。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 30,726評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)叭喜。三九已至,卻和暖如春蓖谢,著一層夾襖步出監(jiān)牢的瞬間捂蕴,已是汗流浹背。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 31,952評(píng)論 1 264
  • 我被黑心中介騙來(lái)泰國(guó)打工闪幽, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留啥辨,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,271評(píng)論 2 360
  • 正文 我出身青樓盯腌,卻偏偏與公主長(zhǎng)得像溉知,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子腕够,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,452評(píng)論 2 348