Java基础(九)| ArrayList详解与应用

⭐本专栏旨在对JAVA的基础语法及知识点进行全面且详细的讲解,完成从0到1的java学习,面向零基础及入门的学习者,通过专栏的学习可以熟练掌握JAVA编程,同时为后续的框架学习,进阶开发的代码能力打下坚实的基础。

?本文已收录于JAVA基础系列专栏: Java基础教程 免费订阅,持续更新。

Java基础(九)| ArrayList详解与应用

1.ArrayList

1.1ArrayList类概述

  • 什么是集合
    提供一种存储空间可变的存储模型,存储的数据容量可以发生改变
  • ArrayList集合的特点
    底层是数组实现的,长度可以变化
  • 泛型的使用
    用于约束集合中存储元素的数据类型

1.2ArrayList类常用方法

1.2.1构造方法

方法名

说明

public ArrayList()

创建一个空的集合对象

1.2.2成员方法

E表示返回的类型是集合中元素的类型。

方法名

说明

public boolean remove(Object o)

删除指定的元素,返回删除是否成功

public E remove(int index)

删除指定索引处的元素,返回被删除的元素

public E set(int index,E element)

修改指定索引处的元素,返回被修改的元素

public E get(int index)

返回指定索引处的元素

public int size()

返回集合中的元素的个数

public boolean add(E e)

将指定的元素追加到此集合的末尾

public void add(int index,E element)

在此集合中的指定位置插入指定的元素

1.2.3示例代码

public class ArrayListDemo02 {
public static void main(String[] args) {
//创建集合
ArrayList<String> array = new ArrayList<String>();

//添加元素
array.add("hello");
array.add("world");
array.add("java");

//public boolean remove(Object o):删除指定的元素,返回删除是否成功
// System.out.println(array.remove("world"));
// System.out.println(array.remove("javaee"));

//public E remove(int index):删除指定索引处的元素,返回被删除的元素
// System.out.println(array.remove(1));

//IndexOutOfBoundsException
// System.out.println(array.remove(3));

//public E set(int index,E element):修改指定索引处的元素,返回被修改的元素
// System.out.println(array.set(1,"javaee"));

//IndexOutOfBoundsException
// System.out.println(array.set(3,"javaee"));
// 索引越界

//public E get(int index):返回指定索引处的元素
// System.out.println(array.get(0));
// System.out.println(array.get(1));
// System.out.println(array.get(2));
//System.out.println(array.get(3));

//public int size():返回集合中的元素的个数
System.out.println(array.size());

//输出集合
System.out.println("array:" + array);
}
}

1.3ArrayList存储字符串并遍历

1.3.1案例需求

创建一个存储字符串的集合,存储3个字符串元素,使用程序实现在控制台遍历该集合

1.3.2代码实现

/*
思路:
1:创建集合对象
2:往集合中添加字符串对象
3:遍历集合,首先要能够获取到集合中的每一个元素,这个通过get(int index)方法实现
4:遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
5:遍历集合的通用格式
*/
public class ArrayListTest01 {
public static void main(String[] args) {
//创建集合对象
ArrayList<String> array = new ArrayList<String>();

//往集合中添加字符串对象
array.add("刘正风");
array.add("左冷禅");
array.add("风清扬");

//遍历集合,其次要能够获取到集合的长度,这个通过size()方法实现
// System.out.println(array.size());

//遍历集合的通用格式
for(int i=0; i<array.size(); i++) {
String s = array.get(i);
System.out.println(s);
}
}
}

1.4ArrayList存储学生对象并遍历

1.4.1案例需求

创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

1.4.2代码实现

/*
思路:
1:定义学生类
2:创建集合对象
3:创建学生对象
4:添加学生对象到集合中
5:遍历集合,采用通用遍历格式实现
*/
public class ArrayListTest02 {
public static void main(String[] args) {
//创建集合对象
ArrayList<Student> array = new ArrayList<>();

//创建学生对象
Student s1 = new Student("林青霞", 30);
Student s2 = new Student("风清扬", 33);
Student s3 = new Student("张曼玉", 18);

//添加学生对象到集合中
array.add(s1);
array.add(s2);
array.add(s3);

//遍历集合,采用通用遍历格式实现
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getName() + "," + s.getAge());
}
}
}

1.5ArrayList存储学生对象并遍历升级版

1.5.1案例需求

创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合

学生的姓名和年龄来自于键盘录入

1.5.2代码实现

/*
思路:
1:定义学生类,为了键盘录入数据方便,把学生类中的成员变量都定义为String类型
2:创建集合对象
3:键盘录入学生对象所需要的数据
4:创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
5:往集合中添加学生对象
6:遍历集合,采用通用遍历格式实现
*/
public class ArrayListTest {
public static void main(String[] args) {
//创建集合对象
ArrayList<Student> array = new ArrayList<Student>();

//为了提高代码的复用性,我们用方法来改进程序
// 空array
addStudent(array);
addStudent(array);
addStudent(array);

//遍历集合,采用通用遍历格式实现
// 遍历array
for (int i = 0; i < array.size(); i++) {
Student s = array.get(i);
System.out.println(s.getName() + "," + s.getAge());
}
}

/*
两个明确:
返回值类型:void
参数:ArrayList<Student> array
*/
public static void addStudent(ArrayList<Student> array) {
//键盘录入学生对象所需要的数据
Scanner sc = new Scanner(System.in);

System.out.println("请输入学生姓名:");
String name = sc.nextLine();

System.out.println("请输入学生年龄:");
String age = sc.nextLine();

//创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
Student s = new Student();
s.setName(name);
s.setAge(age);

//往集合中添加学生对象
// array中添加了s对象
array.add(s);
}
}

2.学生管理系统

2.1学生管理系统实现步骤

  • 案例需求
    ​ 针对目前我们的所学内容,完成一个综合案例:学生管理系统!该系统主要功能如下:
    ​ 添加学生:通过键盘录入学生信息,添加到集合中
    ​ 删除学生:通过键盘录入要删除学生的学号,将该学生对象从集合中删除
    ​ 修改学生:通过键盘录入要修改学生的学号,将该学生对象其他信息进行修改
    ​ 查看学生:将集合中的学生对象信息进行展示
    退出系统:结束程序
  • 实现步骤
  1. 定义学生类,包含以下成员变量
    ​ private String sid // 学生id
    ​ private String name // 学生姓名
    ​ private String age // 学生年龄
    private String address // 学生所在地
  2. 学生管理系统主界面的搭建步骤
    2.1 用输出语句完成主界面的编写 2.2 用Scanner实现键盘输入 2.3 用switch语句完成选择的功能 2.4 用循环完成功能结束后再次回到主界面
  3. 学生管理系统的添加学生功能实现步骤
    3.1 定义一个方法,接收ArrayList集合 3.2 方法内完成添加学生的功能 ​ ①键盘录入学生信息 ​ ②根据录入的信息创建学生对象 ​ ③将学生对象添加到集合中 ​ ④提示添加成功信息 3.3 在添加学生的选项里调用添加学生的方法
  4. 学生管理系统的查看学生功能实现步骤
    4.1 定义一个方法,接收ArrayList集合 4.2 方法内遍历集合,将学生信息进行输出 4.3 在查看所有学生选项里调用查看学生方法
  5. 学生管理系统的删除学生功能实现步骤
    5.1 定义一个方法,接收ArrayList集合 5.2 方法中接收要删除学生的学号 5.3 遍历集合,获取每个学生对象 5.4 使用学生对象的学号和录入的要删除的学号进行比较,如果相同,则将当前学生对象从集合中删除 5.5 在删除学生选项里调用删除学生的方法
  6. 学生管理系统的修改学生功能实现步骤
    6.1 定义一个方法,接收ArrayList集合 6.2 方法中接收要修改学生的学号 6.3 通过键盘录入学生对象所需的信息,并创建对象 6.4 遍历集合,获取每一个学生对象。并和录入的修改学生学号进行比较.如果相同,则使用新学生对象替换当前学生对象 6.5 在修改学生选项里调用修改学生的方法
  7. 退出系统
    使用System.exit(0);退出JVM

2.2学生类的定义

public class Student {
//学号
private String sid;
//姓名
private String name;
//年龄
private String age;
//居住地
private String address;

public Student() {
}

public Student(String sid, String name, String age, String address) {
this.sid = sid;
this.name = name;
this.age = age;
this.address = address;
}

public String getSid() {
return sid;
}

public void setSid(String sid) {
this.sid = sid;
}

public String getName() {
return name;
}

public void setName(String name) {
this.name = name;
}

public String getAge() {
return age;
}

public void setAge(String age) {
this.age = age;
}

public String getAddress() {
return address;
}

public void setAddress(String address) {
this.address = address;
}
}

2.3测试类的定义

发表评论

相关文章