一、概述
ArrayList集合是程序中最常见的一种集合,属于引用类型,在AyyayList内部封装了一个长度可变的数组,当存储元素超过数组长度时,ArrayList会在内存中分配一个更大的数组来存储这些元素,可以看做ArrayList是一个长度可变的数组。
1、创建集合
导包:import java.util.ArrayList;
创建对象:
ArrayList<要存储的数据类型> 变量名 = new ArrayList<要存储的数据类型>();
注意:<要存储的数据类型>中必须为引用数据类型
2、基本数据类型对应应用数据类型
基本数据类型 | 对应的引用数据类型 |
---|---|
byte | Byte |
short | Short |
int | Integer |
long | Long |
float | Float |
double | Double |
char | Character |
boolean | Boolean |
3、创建方式
(1)存储String类型的元素:
ArrayList<String> list = new ArrayList<String>();
(2)存储int类型的元素:
ArrayList<Integer> list = new ArrayList<Integer>();
(3)创建自己定义的Student类型的数据:
ArrayList<Student> list = new ArrayList<Student>();
集合和数组的区别:
集合的长度是可变的,数组的长度是固定的
集合中存储的元素必须是引用类型数据
二、代码实例
实例1:存储元素
import java.util.ArrayList;
public class ListString {
public static void main(String[] args) {
ArrayList<String> list = new ArrayList<>();
list.add("aa");
list.add("bb");
list.add("cc");
System.out.println(list); //输出list集合的元素 [aa, bb, cc]
System.out.println(list.size()); //输出集合元素的个数
System.out.println(list.get(0)); //输出集合中第1个元素
System.out.println(list.get(1)); //输出集合中第2个元素
System.out.println(list.get(2)); //输出集合中第3个元素
System.out.println("--------分割线----------");
for (int i = 0; i < list.size(); i++) {
System.out.println(list.get(i)); //遍历输出集合中的元素
}
}
}
输出结果
[aa, bb, cc]
3
aa
bb
cc
--------分割线----------
aa
bb
cc
实例2:存储Student类,对学生的信息进行封装,并随机获取一个学生信息
Student.java文件:
package com.sxt.test;
public class Student {
private String name;
private Integer age;
//构造方法
public Student() {
}
//set、get方法
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
package com.sxt.test;
import java.util.ArrayList;
import java.util.Random;
import java.util.Scanner;
public class testdemo {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<Student>();
addStudentList(list); //添加学生信息
pritnStudentList(list); //打印学生信息
randomStudentList(list); //随机抽取某个学生信息
}
//添加学生信息
private static void addStudentList(ArrayList<Student> list) {
for (int i = 0; i < 3; i++) {
Student student = new Student();
student.setAge(10);
student.setName("pbm");
list.add(student);
}
}
//打印学生信息
private static void pritnStudentList(ArrayList<Student> list) {
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
//System.out.println(stu);
System.out.println(stu.getAge());
System.out.println(stu.getName());
}
}
//随机抽取某个学生信息
private static void randomStudentList(ArrayList<Student> list) {
int ints = new Random().nextInt(list.size());
Student ss = list.get(ints);
System.out.println(ss.getName());
System.out.println(ss.getAge());
}
}