ArrayList是长度可变的数组。
注意:对于ArrayList集合来说,直接打印得到的不是地址值,而是内容。如果内容为空,得到的是空的中括号。
import java.util.ArrayList;
public class DemoArrayList {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> list = new ArrayList<>();
System.out.println(list); //结果为[]
//向集合中添加数据
list.add("唐僧");
list.add("孙悟空");
list.add("猪八戒");
list.add("沙和尚");
System.out.println(list); //结果为:[唐僧,孙悟空,猪八戒,沙和尚]
}
}
ArrayList中的常用方法
- public boolean add(E e); 向集合当中添加元素,参数的类型和泛型一致。
注意:对于ArrayList集合来说,add添加动作一定是成功的 - public E get(int index); 从集合当中获取元素,参数是索引编号,返回值是对应位置的元素
- public E remove(int index); 从集合当中删除元素,参数是索引编号,返回值就是被删除掉的元素
- public int size(); 获取集合的尺寸长度
import java.util.ArrayList;
public class DemoArrayList {
public static void main(String[] args) {
// TODO Auto-generated method stub
ArrayList<String> list = new ArrayList<>();
//向集合中添加数据
boolean success = list.add("白龙马");
System.out.println(list);
System.out.println("添加动作是否成功" + success); //true
list.add("唐僧");
list.add("孙悟空");
list.add("猪八戒");
list.add("沙和尚");
System.out.println(list); //结果为:[白龙马,唐僧,孙悟空,猪八戒,沙和尚]
//从集合中获取元素
String name = list.get(2);
System.out.println(name); //孙悟空
//从集合中删除元素,索引从0开始
String removeName = list.remove(3);
System.out.println(removeName); //猪八戒
System.out.println(list); //结果为:[白龙马,唐僧,孙悟空,沙和尚]
//获取集合的长度尺寸,即元素的个数
int size = list.size(); //4
//遍历集合
for(int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
如果希望向集合ArrayList当中存储基本类型数据,必须使用基本类型对应的“包装类”。
基本类型 | 包装类 |
---|---|
byte | Byte |
short | Short |
int | integer |
long | Long |
float | Float |
double | Double |
char | character |
boolean | Boolean |
举个向集合ArrayList当中存储基本类型数据的例子
import java.util.ArrayList;
public class DemoArrayList {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
list.add(100);
list.add(200);
System.out.println(list);
int num = list.get(1);
System.out.println(num);
}
}
例题
题目一:生成6个1-33之间的随机整数,添加到集合,并遍历集合。
import java.util.ArrayList;
import java.util.Random;
public class DemoArrayList {
public static void main(String[] args) {
ArrayList<Integer> list = new ArrayList<>();
Random r = new Random();
for(int i = 0; i < 6; i++)
{
int num = r.nextInt(33) + 1;
list.add(num);
}
for(int i = 0; i < list.size(); i++) {
System.out.println(list.get(i));
}
}
}
题目二:自定义4个学生对象,添加到集合,并遍历。
//Student.java
public class Student {
private String name;
private int age;
public Student() {
}
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getNmae() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
}
//DemoArrayList.java
import java.util.ArrayList;
public class DemoArrayList {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
Student one = new Student("张三", 18);
Student two = new Student("李四", 28);
Student three = new Student("王五", 38);
Student four = new Student("小二", 48);
list.add(one);
list.add(two);
list.add(three);
list.add(four);
for(int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
System.out.println("姓名" + stu.getNmae() + "年龄" + stu.getAge());
}
}
}
题目三:打印集合,格式为:{元素@元素@元素}
import java.util.ArrayList;
public class DemoArrayList {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("唐僧");
list.add("孙悟空");
list.add("猪八戒");
list.add("沙和尚");
printArrayList(list);
}
public static void printArrayList(ArrayList<String> list) {
System.out.println("{");
for(int i = 0; i < list.size(); i++) {
String name = list.get(i);
if(i == list.size() - 1) {
System.out.println(name + "}");
}
else {
System.out.println(name + "@");
}
}
}
}
题目四:用一个大集合存入20个随机数字,然后筛选其中的偶数元素,放到小集合当中(要求使用自定义方法来实现筛选)
分析:
-
需要创建一个大集合,用来存储int数字。
-
随机数字就用Random nextInt。
-
循环20次,把随机数字放入大集合,for循环,add方法。
-
定义一个方法,用来进行筛选
筛选:根据大集合,筛选符合要求的元素,得到小集合。
三要素:
返回值类型:ArrayList大集合(里面元素个数不确定)
方法名称:getSmallList
参数列表:ArrayList大集合(装着20个随机数字) -
判断(if)是偶数,num%2 == 0。
-
如果是偶数,就放到小集合中,否则不放。
import java.util.ArrayList;
import java.util.Random;
public class DemoArrayList {
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; //0-100
bigList.add(num);
}
System.out.println("20个随机数字为:" + bigList);
ArrayList<Integer> smallList = getSmallList(bigList);
System.out.println("偶数的个数:" + smallList.size());
for(int i = 0; i < smallList.size(); i++) {
System.out.println(smallList.get(i));
}
}
public static ArrayList<Integer> getSmallList(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;
}
}