ArrayList:集合类的子类
是一个长度可变的容器。
public static void main(String[] args) {
ArrayList list = new ArrayList();
// 添加元素
list.add(1);
list.add(true);
list.add("hello");
// 获取list的元素的 个数
System.out.println(list.size());
//移除元素
list.remove(1);
//修改元素
list.set(0,11);
//遍历ArrayList
for(int i = 0 ; i < list.size();i++){
System.out.println(list.get(i));
}
// 判断容器中是否包含某一个元素
System.out.println(list.contains(111));
}
案例:存储字符串并遍历
需求:创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合
import java.util.ArrayList;
public class ArrayListDemo_02 {
/*
案例:存储字符串并遍历
需求:创建一个存储字符串的集合,存储3个字符串元素,
使用程序实现在控制台遍历该集合
思路:
1 创建一个 ArrayList
2 容器中存储的是 String对象
3 遍历
*/
public static void main(String[] args) {
// 创建一个容器
ArrayList<String> strList = new ArrayList<>();
//添加元素
strList.add("java");
strList.add("HTML");
strList.add("Spring");
// 遍历
for(int i = 0 ; i <strList.size();i++){
System.out.println(strList.get(i));
}
// 使用增强for来遍历
for(String str : strList){
System.out.println(str);
}
}
}
案例:存储学生对象并遍历
需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合
实现一:用数组实现
public class Student {
private int stuId;// 学号
private String stuName;//姓名
private int age;//年龄
public Student() {
}
public Student(String stuName, int age) {
this.stuName = stuName;
this.age = age;
}
public Student(int stuId, String stuName, int age) {
this.stuId = stuId;
this.stuName = stuName;
this.age = age;
}
public int getStuId() {
return stuId;
}
public void setStuId(int stuId) {
this.stuId = stuId;
}
public String getStuName() {
return stuName;
}
public void setStuName(String stuName) {
this.stuName = stuName;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public void show(){
System.out.println(this.getStuId() +"--"+this.getStuName()+"---"+this.getAge());
}
}
public class ArrayListDemo_03 {
//使用数组来存储自定义类型
public static void main(String[] args) {
// 创建自定义类型的数组
Student[] stuArr = new Student[3];
stuArr[0]= new Student(1,"张三",22);
Student stu = new Student();
stu.setStuId(2);
stu.setStuName("李四");
stu.setAge(20);
stuArr[1] = stu;
stuArr[2]= new Student(3,"王五",23);
//遍历数组
for(int i = 0 ; i < stuArr.length;i++){
stuArr[i].show();
}
System.out.println("------------------------------");
// 使用增强for
for(Student student :stuArr){
student.show();
}
}
}
实现方式二:ArrayList
import java.util.ArrayList;
public class ArrayListDemo_03 {
//使用数组来存储自定义类型
public static void main(String[] args) {
//创建一个 容器
ArrayList<Student> list = new ArrayList<>();
list.add(new Student(1,"辛巴",21));
Student student = new Student(2,"李佳琪",25);
list.add(student);
list.add(new Student(3,"维亚",28));
for (int i = 0 ; i < list.size();i++){
list.get(i).show();
}
System.out.println("------------------");
for(Student stu1 :list){
stu1.show();
}
}
}
案例:存储学生对象并遍历升级版
需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合,学生的姓名和年龄来自于键盘录入
思路:
①定义学生类,为了键盘录入数据方便,把学生类中的成员变量都定义为String类型
②创建集合对象
③键盘录入学生对象所需要的数据
④创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
⑤往集合中添加学生对象
⑥遍历集合,采用通用遍历格式实现
public class ArrayListDemo_04 {
/*
需求:创建一个存储学生对象的集合,存储3个学生对象,
使用程序实现在控制台遍历该集合,
学生的姓名和年龄来自于键盘录入
*/
public static void main(String[] args) {
//1 创建集合
ArrayList<Student> list = new ArrayList<>();
//从键盘输入 创建Scanner对象
Scanner sc = new Scanner(System.in);
// 2 构建学生对象
for(int i = 0 ; i < 3 ;i++){
// 每次都 创建 一个新的学生对象
Student stu = new Student();
//为学生对象的属性赋值 输入的时候 最好不要进行混合类型的输入
System.out.println("请输入学生的ID:");
stu.setStuId(sc.nextLine());
System.out.println("请输入学生的姓名:");
stu.setStuName(sc.nextLine());
System.out.println("请输入学生年龄:");
stu.setAge(sc.nextLine());
//将创建好的学生对象添加到集合
list.add(stu);
}
//遍历集合 输出学生信息
for(Student stu : list){
stu.show();
}
}
}