Java常用API(ArrayList类)
Java常用API(ArrayList类)
我们为什么要使用ArrayList类?
为了更加方便的储存对象,因为使用普通的数组来存储对象太过麻烦了,因为数组的一个很大的弱点就是长度从一开始就固定了,所以Java提供了另一个容器 java.util.ArrayList 集合类,让我们可以更便捷的存储和操作对象数据
什么是ArrayList?
所以从上面的介绍就可以看出所谓的ArrayList类就是一个长度可变的数组。
接下来我们来介绍ArrayList的使用:
第一步肯定是首先导包啦
java.util.ArrayList <E> :
注:
<E>:这里的E是范型的意思,意思是可以存储任意的引用数据类型,注意是引用数据类型,不是基本数据类型,那么有小伙伴就会问了,那么如果我就要存储基本数据类型呢?这里java给我们提供的包装类,(所谓包装类就是将基本数据类型包装为对象)后面我在写一篇文章展开详细的叙述

构造方法献上:
public ArrayList() :构造一个内容为空的集合。
基本格式
ArrayList<String> list = new ArrayList<String>();
jdk7之后右侧<>可以留空
ArrayList<String> 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 class Test { public static void main(String[] args) { ArrayList<Person> 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()); } }
package cn.itcast; public class Person { private int age; private String name; @Override public String toString() { return "Person{" + "age=" + age + ", name='" + name + '\'' + '}'; } public Person(int age, String name) { this.age = age; this.name = name; } public Person() { } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
注意:
要重写tostring ()方法不然打印出来的是地址值
结果
2这是存储基本数据类型的代码
package cn.itcast; import java.util.ArrayList; import java.util.Arrays; import java.util.Random; import java.util.Scanner; public class Test { public static void main(String[] args) { ArrayList<Integer> arrayList = new ArrayList<>(); arrayList.add(10); arrayList.add(20); System.out.println(arrayList); } }
结果
有同学可能会问,你不是说包装成对象了吗,怎么又直接输出了,这里是因为java帮我们自动拆箱了,我后面再写一篇关于
包装类的文章详细展开叙述
3这里给大家再加点料
上面说到了ArrayList<E>是采用范型的,这就意味着可以加入不同的类型的引用数据类型放置在同一ArrayList<>中
下面举个例子
主函数
package cn.itcast; import java.util.ArrayList; public class Test { public static void main(String[] args) { ArrayList<Object> arrayList = new ArrayList<>(); arrayList.add(new Person(18,"lisi")); arrayList.add(new man(18,"wangwu",99)); System.out.println(arrayList); } }
Person类
package cn.itcast; public class Person { private int age; private String name; @Override public String toString() { return "Person{" + "age=" + age + ", name='" + name + '\'' + '}'; } public Person(int age, String name) { this.age = age; this.name = name; } public Person() { } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } }
main类
1 package cn.itcast; 2 3 public class man { 4 private int age; 5 private String name; 6 private int id; 7 8 @Override 9 public String toString() { 10 return "man{" + 11 "age=" + age + 12 ", name='" + name + '\'' + 13 ", id=" + id + 14 '}'; 15 } 16 17 public int getId() { 18 return id; 19 } 20 21 public void setId(int id) { 22 this.id = id; 23 } 24 25 public man(int age, String name, int id) { 26 this.age = age; 27 this.name = name; 28 this.id = id; 29 } 30 31 public man(int age, String name) { 32 this.age = age; 33 this.name = name; 34 } 35 36 public int getAge() { 37 return age; 38 } 39 40 public void setAge(int age) { 41 this.age = age; 42 } 43 44 public String getName() { 45 return name; 46 } 47 48 public void setName(String name) { 49 this.name = name; 50 } 51 }
结果
以上就是一些基本的关于ArrayList的内容,如有不正确或则不完善的地方还请各位批评指教