ArrayList
介绍
ArrayList类位于java.util包中,是一种数组列表,与普通数组的最大区别就是可以动态存储,能够实现添加、删除等功能。
使用方法
- 导包
import java.util.ArrayList;
- 创建对象
ArrayList<E> list = new ArrayList<>();
ArrayList< E >其中的E代表泛型
也就是说装在集合中的所有元素,都是统一的类型。
注意:泛型只能是引用类型,不能是基本类型
如果想存基本类型,需要转换为基本类型对应的包装类
基本类型 | 包装类 (引用类,位于java.long包下) |
---|---|
byte | Byte |
short | Short |
int | Integer 【特殊】 |
long | Long |
float | Float |
double | Double |
char | Character【特殊】 |
boolean | Boolean |
并且在JDK1.5后,支持自动装箱,自动拆箱
自动装箱: 基本类型–>包装类型
自动拆箱: 包装类型–>基本类型
- 使用
首先创建一个对象
ArrayList<String> list = new ArrayList<>();
System.out.println(list); //[]
list.add("zbf");
list.add("abc");
list.add("ab");
System.out.println(list);
输出结果
[]
[zbf, abc, ab]
可以看到,ArrayList和普通的数组的区别,普通数组直接打印会输出地址值,而ArrayList直接输出会显示内容,如果没有内容,则会显示[ ]
常用方法
首先创建一个对象
ArrayList<String> list = new ArrayList<>();
System.out.println(list);
- public boolean add(E e);
向集合中添加元素,参数的类型和泛型一致对于ArrayList的add添加一定成功。
boolean success = list.add("ab");
System.out.println(list);
System.out.println("添加的动作是否成功" + success);
list.add("aba");
list.add("abe");
list.add("abd");
list.add("abc");
System.out.println(list); // [ab, aba, abe, abd, abc]
输出结果:
[]
[ab]
添加的动作是否成功true
[ab, aba, abe, abd, abc]
- public E get(int index);
从集合中获取元素,参数是索引编号,返回值是对应位置的元素
// 从集合中获取元素
String name = list.get(2);
System.out.println(name);
输出结果:
abe
- public E remove(int index);
从集合中删除元素,参数是索引编号,返回值是被删除的元素
// 从集合中删除元素
String whoRemoved = list.remove(3);
System.out.println("被删除的人" + whoRemoved);
System.out.println(list);
输出结果
被删除的人abd
[ab, aba, abe, abc]
- public in size();
获取集合的尺寸长度,返回值是集合中包含的元素
// 获取集合的尺寸
int size = list.size();
System.out.println(size);
输出结果:
4
实例
用一个大集合存入20个随机数字,筛选出偶数元素放到小集合中
用自定义方法实现
package day07.demo05;
import java.util.ArrayList;
import java.util.Random;
/*
用一个大集合存入20个随机数字,筛选出偶数元素放到小集合中
用自定义方法实现
*/
public class Demo04ArrayListReturn {
public static void main(String[] args) {
ArrayList<Integer> bigList = new ArrayList<>();
Random r = new Random();
for (int i = 0; i < 20; i++) {
int num = r.nextInt(100) + 1;
bigList.add(num);
}
System.out.println(bigList);
ArrayList<Integer> smallList = ReturnArrayList(bigList);
System.out.println("共有"+smallList.size()+"个偶数");
System.out.println(smallList);
}
public static ArrayList<Integer> ReturnArrayList(ArrayList<Integer> bigList) {
ArrayList<Integer> smallList = new ArrayList<>();
for (int i = 0; i < bigList.size(); i++) {
int num = bigList.get(i);
if (num % 2 == 0) {
smallList.add(num);
}
}
return smallList;
}
}