集合出现的原因
数组存储数据是固定存储 ,当遇到要存储数据的个数不确定的时候 数组就不满足了,集合就出现了
集合存储数据的个数,可以随着数据量的变化而变化,不会造成越界或者大量的空间浪费
存储数据的个数是可变的
arraylist:
java.util包下
底层维护了一个数组
线程不同步(处理速度快)
创建arraylist对象的格式:
arraylist
注意: 集合只能存储引用类型的数据
基本数据类型 对应的引用数据类型表示形式
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.退出学生信息管理系统
提示退出
并结束程序
代码演示
1 public static void main(String[] args) { 2 // 初始化数据 3 // 创建一个集合容器 可以存储学生的信息 4 ArrayList<student> list = new ArrayList<student>(); 5 // =========================测试数据================================ 6 // Student s1 = new Student("9001", "阿拉甲", "18", "迪拜"); 7 // Student s2 = new Student("9002", "阿拉yi", "18", "迪拜"); 8 // Student s3 = new Student("9003", "阿拉饼", "18", "迪拜"); 9 // list.add(s1); 10 // list.add(s2); 11 // list.add(s3); 12 // System.out.println("初始化完毕"); 13 // =========================测试数据================================ 14 15 System.out.println("-------------------欢迎使用学生管理系统------------------------"); 16 17 // 死循环 18 while (true) { 19 // 展示功能菜单 20 System.out.println("================================="); 21 System.out.println("1.查看学生信息"); 22 System.out.println("2.添加学生信息"); 23 System.out.println("3.修改学生信息"); 24 System.out.println("4.删除学生信息"); 25 System.out.println("5.退出学生信息管理系统"); 26 System.out.println("请输入对应功能的序号"); 27 System.out.println("================================="); 28 // 接收用户的输入 29 Scanner sc = new Scanner(System.in); 30 int user = sc.nextInt(); 31 // 根据用户的输入进行功调用 32 switch (user) { 33 case 1: 34 show(list); 35 break; 36 case 2: 37 add(list); 38 break; 39 case 3: 40 upd(list); 41 break; 42 case 4: 43 del(list); 44 break; 45 case 5: 46 System.out.println("感谢使用管理系统 欢迎下次再来哦 "); 47 // 终止虚拟机 48 System.exit(0); 49 // return; 50 break; 51 52 default: 53 System.out.println("对不起 没有这个功能 ,请控制你自己 "); 54 break; 55 } 56 } 57 } 58 59 // 功能方法s 60 public static void del(ArrayList<student> list) { 61 // 1.提示输入学号 62 Scanner sc = new Scanner(System.in); 63 System.out.println("请输入学号"); 64 String id = sc.next(); 65 66 // 2.查找 67 // 定义标记 68 int index = -1; 69 // 遍历比较 并修改 70 for (int i = 0; i list) { 92 // 1.提示输入学号 93 Scanner sc = new Scanner(System.in); 94 System.out.println("请输入学号"); 95 String id = sc.next(); 96 97 // 2.查找 98 // 定义标记 99 int index = -1; 100 // 遍历并比较 101 for (int i = 0; i list) { 134 // 1.提示输入学号 135 Scanner sc = new Scanner(System.in); 136 System.out.println("请输入学号"); 137 String id = sc.next(); 138 // 2.根据学号去重 139 140 // 使用用户输入的学号去集合中查找, 如果找到与用户输入的学号一样的学号表示有重复,此时要继续提示输入学号,并继续去重 141 // 直到用户输入的学号与集合中元素的学号不一致的时候再收集其他的信息 142 while (true) { 143 // 定义一个标记 给一个默认值 144 int index = -1; 145 // 遍历集合获取元素的学号与用户输入的学号进行比较 146 for (int i = 0; i list) { 182 // 1.判断集合是否有元素 183 if (list.size() == 0) { 184 // 如果没有给出特定的提示 185 System.out.println("系统中没有学生的信息,请选择添加功能"); 186 } else { 187 // 如果有就按照指定格式遍历 188 System.out.println("================学生信息如下===================="); 189 System.out.println("学号\t\t姓名\t\t年龄\t\t家乡"); 190 // 遍历集合获取学生信息 191 for (int i = 0; i </student></student></student>
以上就是ArrayList集合的详细内容,更多请关注php中文网其它相关文章!
Copyright 2014-2024 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号