ArrayList类
引入—对象数组
//需求:把三个Peoole类型的对象存入到容器当中。数组
public static void main(String[] args){
//创建对象数组
People[] arr = new People[3];
//创建3个people对象
People p1 = new People("小明",20);
People p2 = new People("小花",18);
People p3 = new People("小刘",22);
//使用循环
//for(int i = 0 ; i<3 : i++){
// arr[i]=new People();
//}
//遍历学生数组 展示对象中的成员变量信息 name age
for(int i = 0 ; i<=arr.length-1;i++){
People p = arr[i];
System.out.println(arr[i].getName()+","+arr[i].getAge());
}
}
备注:对象数组,长度是固定的,如果在程序中需要对【对象】进行增加或者删除等数量操作时,非常不方便。于是Java又提供了一个容器Java.util.ArrayList集合类。这个类让我们的存储和操作对象更方便。
什么是ArrayList类
java.util.ArrayList类是一个【大小可变的数组】的实现,里面存储的数据称为元素。该类提供了一些常用的api方法来操作内部存储的元素。
ArrayList类的使用步骤
- 查看类
java.util.ArrayList<E’>:该类也是需要import导入后才能使用
<E’>,表示一种指定的数据类型,叫做【泛型】。E,取自Element(元素)的首字母。在程序中遇到【E】的地方,我们需要使用一种【引用的数据类型】将其替换掉即可,表示我们将存储哪种数据类型的元素。
例如:
import java.util.ArrayList;
Arraylist<People> peoples;
ArrayList<String> strs;
ArrayList<int> nums;//不正确的写法
-
查看构造方法
public ArrayList():构造一个初识容量为10的空列表
public ArrayList(int initialCapacity) 构造一个指定初始容器的空列表
基本格式:
ArrayList<引用数据类型> 变量名 = new ArrayList<引用数据类型>();
//在JDk1.7之后右侧的泛型尖括号里面的数据类型可以选择省略不写,但是<>要保留
- 查看成员方法
public boolean add(E e):将指定的元素添加到此列表的尾部。
public void add(int index,E element):将指定的元素插入此列表中的指定位置。
public void clear(): 移除此列表中的所有元素。
public boolean contains(Object o):判断此列表是否包含指定的元素,如果包含返回true,否则返回false。
public E get(int index):返回指定位置的元素。
public int indexOf(Object o):返回此列表中首次出现的指定元素的索引,或如果此列表不包含元素,则返回 -1。
public boolean isEmpty():如果此列表中没有元素,则返回 true
public E remove(int index):移除此列表中指定位置上的元素,并把移除的元素返回
public E set(int index,E e):用指定的元素替代此列表中指定位置上的元素。
public int size():返回此列表中的元素个数。
遍历【重点】
使用for循环,定义的循环变量就是ArrayList容器中的索引,循环的次数就是容器的元素个数size()
ArrayList<Integer> smallList = getEvenNumber(bigList);
for (int i = 0; i < smallList.size(); i++) {
System.out.println(smallList.get(i));
}
如何存储基本数据类型值
ArrayList类对象基本不能存储基本类型,只能存储引用类型的数据,类似 int 的不支持,但是Java中提供了基本数据类型对应的包装类型,包装类型是可以在ArrayList容器中指定,所以我们如果想要存储基本数据类型值,首先需要把基本数据类型转换成包装类型。
基本类型 | 基本类型的包装类 |
---|---|
byte | Byte |
short | Short |
int | Integer[重点] |
long | Long |
float | Float |
double | Double |
char | Character[重点] |
boolean | Boolean |
除了int和char,其他类型只需要记住首字母大写即可。
练习:存储基本数据类型值
import java.util.ArrayList;
import java.util.Random;
// 需求4:用一个大集合存入30个随机数字[1,100], 然后筛选其中的偶数,放到小集合中,要求使用自定义方法删选元素,最后展示小集合中偶数元素,并且打出偶数元素的个数。
public class ArrayListDemo02 {
public static void main(String[] args) {
//2.构建ArrayList
ArrayList<Integer> bigList= new ArrayList<>();
//构建Random
Random random = new Random();
//3.使用循环随机30个整数 [1,100]
for (int i = 0; i < 30; i++) {
int num = random.nextInt(100)+1;
//存入bigList集合中
bigList.add(num);
}
//获取小集合 里面存储的是偶数元素
ArrayList<Integer> smallList = getEvenNumber(bigList);
//打印输出小集合中的偶数元素和个数
System.out.println("小集合中的偶数元素个数为:"+ smallList.size());
for (int i = 0; i < smallList.size(); i++) {
System.out.println(smallList.get(i));
}
}
//筛选偶数方法
public static ArrayList<Integer> getEvenNumber(ArrayList<Integer>bigList){
//创建一个小集合
ArrayList<Integer> smallList = new ArrayList<>();
//遍历偶数元素 遍历集合
for (int i = 0; i < bigList.size(); i++) {
//取出偶数元素
if (bigList.get(i) %2 ==0){
//偶数存入小集合中
smallList.add(bigList.get(i));
}
}
return smallList;
}
}