Java常用API(ArrayList類)
我們為什麼要使用ArrayList類?
為了更加友善的儲存對象,因為使用普通的數組來存儲對象太過麻煩了,因為數組的一個很大的弱點就是長度從一開始就固定了,是以Java提供了另一個容器 java.util.ArrayList 集合類,讓我們可以更便捷的存儲和操作對象資料
什麼是ArrayList?
是以從上面的介紹就可以看出所謂的ArrayList類就是一個長度可變的數組。
接下來我們來介紹ArrayList的使用:
第一步肯定是首先導包啦
java.util.ArrayList :
注:
:這裡的E是範型的意思,意思是可以存儲任意的引用資料類型,注意是引用資料類型,不是基本資料類型,那麼有小夥伴就會問了,那麼如果我就要存儲基本資料類型呢?這裡java給我們提供的包裝類,(所謂包裝類就是将基本資料類型包裝為對象)後面我在寫一篇文章展開詳細的叙述
構造方法獻上:
public ArrayList() :構造一個内容為空的集合。
基本格式
ArrayList list = new ArrayList();
jdk7之後右側<>可以留白
ArrayList list = new ArrayList<>();
下面來講講ArrayList的一些方法(在這裡立個flag,等有時間了寫幾篇關于底層源碼的文章)
public boolean add(E e) :将指定的元素添加到此集合的尾部。
public E remove(int index) :移除此集合中指定位置上的元素。傳回被删除的元素。
public E get(int index) :傳回此集合中指定位置上的元素。傳回擷取的元素。
public int size():傳回此集合中的元素數。周遊集合時,可以控制索引範圍,防止越界
下面我們來寫一段代碼将上面的方法來總結一下
1 這是存儲對象的代碼
public classTest {public static voidmain(String[] args) {
ArrayList arrayList = new ArrayList<>();
arrayList.add(new Person(18,"lisi"));
arrayList.add(new Person(19,"zhangsan"));
System.out.println(arrayList);//擷取第一個位置的元素
System.out.println(arrayList.get(0));//移除前的大小
System.out.println("移除前的大小"+arrayList.size());//移除第一個位置的元素
System.out.println(arrayList.remove(0));//移除後的大小
System.out.println("移除前的大小"+arrayList.size());
}
}
packagecn.itcast;public classPerson {private intage;privateString name;
@Overridepublic String toString() {
return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}public Person(intage, String name) {this.age =age;this.name =name;
}publicPerson() {
}public intgetAge() {returnage;
}public void setAge(intage) {this.age =age;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}
}
注意:
要重寫tostring ()方法不然列印出來的是位址值
結果
2這是存儲基本資料類型的代碼
packagecn.itcast;importjava.util.ArrayList;importjava.util.Arrays;importjava.util.Random;importjava.util.Scanner;public classTest {public static voidmain(String[] args) {
ArrayList arrayList = new ArrayList<>();
arrayList.add(10);
arrayList.add(20);
System.out.println(arrayList);
}
}
結果
有同學可能會問,你不是說包裝成對象了嗎,怎麼又直接輸出了,這裡是因為java幫我們自動拆箱了,我後面再寫一篇關于
包裝類的文章詳細展開叙述
3這裡給大家再加點料
上面說到了ArrayList是采用範型的,這就意味着可以加入不同的類型的引用資料類型放置在同一ArrayList<>中
下面舉個例子
主函數
packagecn.itcast;importjava.util.ArrayList;public classTest {public static voidmain(String[] args) {
ArrayList arrayList = new ArrayList<>();
arrayList.add(new Person(18,"lisi"));
arrayList.add(new man(18,"wangwu",99));
System.out.println(arrayList);
}
}
Person類
packagecn.itcast;public classPerson {private intage;privateString name;
@OverridepublicString toString() {return "Person{" +
"age=" + age +
", name='" + name + '\'' +
'}';
}public Person(intage, String name) {this.age =age;this.name =name;
}publicPerson() {
}public intgetAge() {returnage;
}public void setAge(intage) {this.age =age;
}publicString getName() {returnname;
}public voidsetName(String name) {this.name =name;
}
}
main類
1 packagecn.itcast;2
3 public classman {4 private intage;5 privateString name;6 private intid;7
8 @Override9 publicString toString() {10 return "man{" +
11 "age=" + age +
12 ", name='" + name + '\'' +
13 ", id=" + id +
14 '}';15 }16
17 public intgetId() {18 returnid;19 }20
21 public void setId(intid) {22 this.id =id;23 }24
25 public man(int age, String name, intid) {26 this.age =age;27 this.name =name;28 this.id =id;29 }30
31 public man(intage, String name) {32 this.age =age;33 this.name =name;34 }35
36 public intgetAge() {37 returnage;38 }39
40 public void setAge(intage) {41 this.age =age;42 }43
44 publicString getName() {45 returnname;46 }47
48 public voidsetName(String name) {49 this.name =name;50 }51 }
結果
以上就是一些基本的關于ArrayList的内容,如有不正确或則不完善的地方還請各位批評指教