集合出现的原因
数组存储数据是固定存储 ,当遇到要存储数据的个数不确定的时候 数组就不满足了,集合就出现了
集合存储数据的个数,可以随着数据量的变化而变化,不会造成越界或者大量的空间浪费
存储数据的个数是可变的
ArrayList:
java.util包下
底层维护了一个数组
线程不同步(处理速度快)
创建ArrayList对象的格式:
ArrayList<E> 集合名字 = new ArrayList<E>();
<E>: 泛型, 代表了集合中要存储的数据类型, 想存什么类型 就把E改成什么类型 , 如要存储String类型的数据 就把E改成String
注意: 集合只能存储引用类型的数据
基本数据类型 对应的引用数据类型表示形式
byte Byte
short Short
int Integer
long Long
float Float
double Double
char Character
boolean Boolean
ArrayList常见功能
添加
public boolean add(E e)
public void add(int index,E element) // 在指定的索引位置添加元素
获取元素
public E get(int index)// 根据索引值获取元素
获取元素个数
public int size() //获取元素个数
删除元素
public boolean remove(Object o) // 直接删除元素
public E remove(int index) //根据索引删除元素 ,并把删除的元素返回
修改元素
public E set(int index,E element)// 使用element 去替换指定索引的元素 , 并返回被替换的元素
学生管理系统练习
学生信息包括 : 学号 姓名 年龄 家乡
打印欢迎语句
打印对应的功能 , 并接收用户的输入
1.查看学生信息
如果系统没有学生信息 则给出对应的提示
如果系统中有学生信息, 则按照指定的格式打印学生信息
2.添加学生信息
从键盘录入学生的信息 组成对象 添加到集合中
根据学号去重,只有没重复的学号才能添加到集合中
3.修改学生信息
根据学号找到学生进行修改
如果没有学号则给出对应的提示
如果找到学号则继续收集新信息, 使用新信息修改原来的元素
4.删除学生信息
根据学号删除学生
如果没有指定学号则给出指定的提示
如果有学号则删除指定的元素
5.退出学生信息管理系统
提示退出
并结束程序
代码演示
public static void main(String[] args) {
// 初始化数据
// 创建一个集合容器 可以存储学生的信息
ArrayList<Student> list = new ArrayList<Student>();
// =========================测试数据================================
// Student s1 = new Student("9001", "阿拉甲", "18", "迪拜");
// Student s2 = new Student("9002", "阿拉yi", "18", "迪拜");
// Student s3 = new Student("9003", "阿拉饼", "18", "迪拜");
// list.add(s1);
// list.add(s2);
// list.add(s3);
// System.out.println("初始化完毕");
// =========================测试数据================================
System.out.println("-------------------欢迎使用学生管理系统------------------------");
// 死循环
while (true) {
// 展示功能菜单
System.out.println("=================================");
System.out.println("1.查看学生信息");
System.out.println("2.添加学生信息");
System.out.println("3.修改学生信息");
System.out.println("4.删除学生信息");
System.out.println("5.退出学生信息管理系统");
System.out.println("请输入对应功能的序号");
System.out.println("=================================");
// 接收用户的输入
Scanner sc = new Scanner(System.in);
int user = sc.nextInt();
// 根据用户的输入进行功调用
switch (user) {
case 1:
show(list);
break;
case 2:
add(list);
break;
case 3:
upd(list);
break;
case 4:
del(list);
break;
case 5:
System.out.println("感谢使用管理系统 欢迎下次再来哦 ");
// 终止虚拟机
System.exit(0);
// return;
break;