對(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);
? ? }
}
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);
? ? }
}
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);
? ? }
}
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);
? ? ? ? }
????}
}
? ? ? ? 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());
? ? ? ? }
????}
}
? ? ? ? 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);
? ? }
}
? ? ? ? 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);
? ? }
}