publicclassDemo03ArrayListEach{publicstaticvoidmain(String[] args){//创建ArrayList集合对象list,存储数据的类型是StringArrayList<String> list =newArrayList<>();//add方法: 添加元素list.add("aaa");//索引编号0list.add("bbb");//索引编号1list.add("ccc");//索引编号2list.add("ddd");//索引编号3System.out.println(list);//[aaa, bbb, ccc, ddd] aaa的索引是0,bbb的索引是1,ccc的索引是2,ddd的索引是3System.out.println("-------------");String s;s = list.get(0);System.out.println(s);s = list.get(1);System.out.println(s);s = list.get(2);System.out.println(s);s = list.get(3);System.out.println(s);System.out.println("-------------");//以上代码重复,可以使用for循环for(int i =0; i <4; i++){s = list.get(i);System.out.println(s);}System.out.println("-------------");//以上数字4写死了,可以使用集合长度代替for(int i =0; i < list.size(); i++){/*s = list.get(i);System.out.println(s);*/System.out.println(list.get(i));}}}
2.2 ArrayList集合存储基本数据类型
/*ArrayList集合存储基本数据类型ArrayList集合对象存储基本类型数据时,创建集合对象时,<>中必须指定的是基本类型对应的引用类型(类,还有一个高大上的名字: 包装类)基本类型 引用类型byte Byteshort Shortint Integer 特殊记忆long Longfloat Floatdouble Doublechar Character 特殊记忆boolean Boolean注意:对于集合的使用,只需要在创建集合对象时,<>中指定基本类型对应的引用类型,其余的操作都可以按照基本类型完成*/publicclassDemo04ArrayListBase{publicstaticvoidmain(String[] args){//创建ArrayList集合对象list,存储数据的类型是整数(byte/short/int/long)//ArrayList<int> list = new ArrayList<int>();//错误的//ArrayList<short> list = new ArrayList<short>();//错误的//ArrayList<byte> list = new ArrayList<byte>();//错误的//ArrayList<long> list = new ArrayList<long>();//错误的//创建ArrayList集合对象list,存储数据的类型是整数,<>中必须指定引用类型ArrayList<Integer> list =newArrayList<>();//add方法: 添加数据list.add(100);list.add(200);list.add(300);//遍历for(int i =0; i < list.size(); i++){int num = list.get(i);System.out.println(num);}}}
2.3 ArrayList集合练习-存储学生对象并遍历
/*需求:创建一个存储学生对象的集合,存储3个学生对象,使用程序实现在控制台遍历该集合实现步骤:1.创建标准的Student类2.创建ArrayList集合对象list,存储数据的类型是Student3.创建三个Student类型的对象4.ArrayList集合对象list调用add方法添加学生对象到集合容器中5.使用for循环遍历*/publicclassDemo02ArrayListStudent{publicstaticvoidmain(String[] args){//2.创建ArrayList集合对象list,存储数据的类型是StudentArrayList<Student> list =newArrayList<>();//3.创建三个Student类型的对象//4.ArrayList集合对象list调用add方法添加学生对象到集合容器中list.add(newStudent("张三",18));//把Student类型的对象,添加到集合对象list内部的数组的索引为0的元素中list.add(newStudent("李四",38));//把Student类型的对象,添加到集合对象list内部的数组的索引为1的元素中list.add(newStudent("王五",28));//把Student类型的对象,添加到集合对象list内部的数组的索引为2的元素中//5.使用for循环遍历for(int i =0; i < list.size(); i++){Student stu = list.get(i);//System.out.println(stu);//地址System.out.println(stu.getName()+"::::"+stu.getAge());}}}
2.4 ArrayList集合练习_存储学生对象内存图
注意:引用变量保存的是对象的地址值,以后不管是将该变量保存到数组还是集合,都保存的是地址值
2.5 ArrayList集合存储Student对象升级版本(键盘录入不定义方法)
/*需求:创建一个存储学生对象的集合,存储3个学生对象(信息来自键盘录入),使用程序实现在控制台遍历该集合实现步骤:1.创建键盘录入Scanner类的对象2.创建标准的Student类3.创建ArrayList集合对象list,存储数据的类型是Student4.因为要存储3个学生对象,个数确定,使用for循环4.1获取键盘录入的学生的名字,保存到String变量name中4.2获取键盘录入的学生的年龄,保存到int变量age中4.3根据获取到到学生信息创建Student对象stu4.4把Student对象stu存储到ArrayList集合对象list中5.遍历ArrayList集合对象list*/publicclassDemo03ArrayListStudentScanner{publicstaticvoidmain(String[] args){//1.创建键盘录入Scanner类的对象Scanner sc =newScanner(System.in);//2.创建标准的Student类//3.创建ArrayList集合对象list,存储数据的类型是StudentArrayList<Student> list =newArrayList<>();//4.因为要存储3个学生对象,个数确定,使用for循环for(int i =1; i <=3; i++){//4.1获取键盘录入的学生的名字,保存到String变量name中System.out.println("请输入第"+i+"个学生的名字: ");String name = sc.next();//4.2获取键盘录入的学生的年龄,保存到int变量age中System.out.println("请输入第"+i+"个学生的年龄: ");int age = sc.nextInt();//4.3根据获取到到学生信息创建Student对象stuStudent stu =newStudent(name,age);//4.4把Student对象stu存储到ArrayList集合对象list中list.add(stu);}//5.遍历ArrayList集合对象listfor(int i =0; i < list.size(); i++){//获取当前元素Student stu = list.get(i);System.out.println(stu.getName()+"::::"+stu.getAge());}}}
2.6 ArrayList集合存储Student对象升级版本(键盘录入定义方法)
/*需求:创建一个存储学生对象的ArrayList集合,定义一个方法,方法内部通过键盘录入向ArrayList集合对象中添加一个学生对象,main方法中调用三次方法,向ArrayList集合对象中完成3个Student对象的添加,最终遍历ArrayList集合对象定义一个方法addStudent: 方法内部通过键盘录入向ArrayList集合对象中添加一个学生对象三要素:1.方法名称: addStudent2.参数列表: ArrayList<Student> list3.返回值类型: void实现步骤:1.创建键盘录入Scanner类的对象2.获取键盘录入的学生的姓名信息,保存到String变量name中3.获取键盘录入的学生的年龄信息,保存到int变量age中4.把获取的键盘录入的姓名和年龄信息,封装成Student对象stu5.使用方法参数ArrayList集合对象list调用add方法添加步骤4中封装的Student对象stu到集合对象中main方法实现步骤:1.创建ArrayList集合对象list,存储数据的类型是Student2.调用三次addStudent方法,传递参数步骤1中创建的ArrayList集合对象list,完成向集合对象list中添加了3个Student对象3.遍历ArrayList集合对象list*/publicclassDemo04ArrayListStudentMethod{publicstaticvoidmain(String[] args){//1.创建ArrayList集合对象list,存储数据的类型是StudentArrayList<Student> list =newArrayList<>();//2.调用三次addStudent方法,传递参数步骤1中创建的ArrayList集合对象list,完成向集合对象list中添加了3个Student对象addStudent(list);addStudent(list);addStudent(list);//3.遍历ArrayList集合对象listfor(int i =0; i < list.size(); i++){//3.1获取当前元素Student stu = list.get(i);//3.2打印信息System.out.println(stu.getName()+"::"+stu.getAge());}}/*定义一个方法addStudent: 方法内部通过键盘录入向ArrayList集合对象中添加一个学生对象三要素:1.方法名称: addStudent2.参数列表: ArrayList<Student> list3.返回值类型: void实现步骤:1.创建键盘录入Scanner类的对象2.获取键盘录入的学生的姓名信息,保存到String变量name中3.获取键盘录入的学生的年龄信息,保存到int变量age中4.把获取的键盘录入的姓名和年龄信息,封装成Student对象stu5.使用方法参数ArrayList集合对象list调用add方法添加步骤4中封装的Student对象stu到集合对象中*/publicstaticvoidaddStudent(ArrayList<Student> list){//1.创建键盘录入Scanner类的对象Scanner sc =newScanner(System.in);//2.获取键盘录入的学生的姓名信息,保存到String变量name中System.out.println("请输入学生的姓名: ");String name = sc.next();//3.获取键盘录入的学生的年龄信息,保存到int变量age中System.out.println("请输入学生的年龄: ");int age = sc.nextInt();//4.把获取的键盘录入的姓名和年龄信息,封装成Student对象stuStudent stu =newStudent(name,age);//5.使用方法参数ArrayList集合对象list调用add方法添加步骤4中封装的Student对象stu到集合对象中list.add(stu);return;//结束方法}}
第三章 ArrayList集合作为方法参数和返回值【重点】
3.1 ArrayList集合作为方法参数
/*ArrayList类型作为方法参数注意: 首次定义Person类,只有一个String name属性ArrayList是引用类型,保存的是集合对象在内存空间的地址值使用ArrayList作为方法参数,传递的是ArrayList集合对象的地址值*/publicclassDemo01ArrayListParam{publicstaticvoidmain(String[] args){//创建ArrayList集合对象list,存储数据的类型PersonArrayList<Person> list =newArrayList<>();//add方法: 添加多个Person对象list.add(newPerson("张三"));list.add(newPerson("李四"));list.add(newPerson("王五"));//调用方法,完成集合的遍历print(list);}/*定义方法print,方法内部打印ArrayList集合中存储的Person类型的数据*/publicstaticvoidprint(ArrayList<Person> list){//使用for循环遍历集合对象for(int i =0; i < list.size(); i++){//获取当前元素Person p = list.get(i);//打印Person对象的信息System.out.println(p.getName());}}}publicclassPerson{privateString name;publicPerson(){}publicPerson(String name){this.name = name;}publicStringgetName(){return name;}publicvoidsetName(String name){this.name = name;}}
3.2 ArrayList集合作为方法参数调用图解
3.3 ArrayList集合作为方法返回值
/*ArrayList类型作为方法返回值注意: 首次定义Person类,只有一个String name属性ArrayList是引用类型,保存的是集合对象在内存空间的地址值使用ArrayList作为方法返回值,返回的是ArrayList集合对象的地址值*/importjava.util.ArrayList;publicclassDemo02ArrayListReturn{publicstaticvoidmain(String[] args){//调用get方法,获取存储多个Person对象的ArrayList集合对象ArrayList<Person> list =get();//使用for循环遍历ArrayList集合对象listfor(int i =0; i < list.size(); i++){//获取当前元素Person p = list.get(i);//输出Person对象的信息System.out.println(p.getName());}}/*定义方法get,返回一个存储多个Person对象的ArrayList集合对象*/publicstaticArrayList<Person>get(){//创建ArrayList集合对象list,存储数据的类型PersonArrayList<Person> list =newArrayList<>();//add方法: 添加多个Person对象list.add(newPerson("张三"));list.add(newPerson("李四"));list.add(newPerson("王五"));//返回listreturn list;}}
3.4 ArrayList集合作为方法返回值图解
总结
能够知道集合和数组的区别1.数组长度不可以改变,集合长度可以改变2.数组中可以存储任意类型数据(基本类型和引用类型),集合中只能存储引用类型能够完成ArrayList集合添加字符串并遍历publicbooleanadd(E e): 添加方法参数e到集合末尾处publicvoidadd(int index,E e): 在集合指定索引index处,添加方法参数指定元素e尾处publicbooleanremove(Object obj): 从集合中删除方法参数指定元素objpublicEremove(int index): 从集合中删除方法参数指定位置index处的元素,返回被删除的元素publicEset(int index,E e): 把集合中的索引为index处的元素,修改成为方法参数指定元素e,返回修改前的元素publicEget(int index): 获取集合中索引index处对应的元素publicintsize(): 获取集合中元素的数量publicvoidclear(): 清空集合元素publicbooleanisEmpty(): 判断集合是否为空//创建ArrayList集合对象list,存储数据的类型是StringArrayList<String> list =newArrayList<>();//add方法添加元素list.add("hello");list.add("world");list.add("java");//使用for循环遍历for(int i =0;i<list.size();i++){sout(list.get(i));}能够完成ArrayList集合添加学生对象并遍历//创建ArrayList集合对象list,存储数据的类型是StudentArrayList<Student> list =newArrayList<>();//add方法添加元素list.add(newStudent("zs",18));list.add(newStudent("ls",38));list.add(newStudent("ww",28));//使用for循环遍历for(int i =0;i<list.size();i++){Student stu = list.get(i);sout(stu.getName()+"::"+stu.getAge());}
//把欢迎界面switch中的输出语句替换成以下方法的调用
witch (choose){//7.根据choose中不同的数字,执行不同的操作case1://调用方法,完成学生信息的添加addStudent(list);break;//...}/*实现添加学生功能:定义方法addStudent,获取键盘录入的学生信息,封装成学生对象,添加到ArrayList集合中三要素:1.方法名称: addStudent2.参数列表: ArrayList<Student> list3.返回值类型: void实现步骤:1.创建键盘录入Scanner类的对象2.获取键盘录入的学生信息,分别保存到不同的String变量中3.把获取到的学生信息封装成Student类型的对象stu4.把步骤3封装的Student类型的对象stu添加到方法参数集合对象list中5.提示"添加成功"*/publicstaticvoidaddStudent(ArrayList<Student> list){//1.创建键盘录入Scanner类的对象Scanner sc =newScanner(System.in);//2.获取键盘录入的学生信息,分别保存到不同的String变量中System.out.println("请输入学号:");String id = sc.nextLine();System.out.println("请输入姓名:");String name = sc.nextLine();System.out.println("请输入年龄:");String age = sc.nextLine();System.out.println("请输入地址:");String address = sc.nextLine();//3.把获取到的学生信息封装成Student类型的对象stuStudent stu =newStudent(id, name, age, address);//4.把步骤3封装的Student类型的对象stu添加到方法参数集合对象list中list.add(stu);//5.提示"添加成功"System.out.println("添加成功");}
1.5 学生管理系统之查看所有学生
//把欢迎界面switch中的输出语句替换成以下方法的调用
witch (choose){//...//7.根据choose中不同的数字,执行不同的操作case4://调用方法,查看所有学生信息printStudent(list);break;//...}/*实现查看所有学生的功能:定义方法printStudent,遍历输出方法参数ArrayList集合对象中的所有Student对象的信息三要素:1.方法名称: printStudent2.参数列表: ArrayList<Student> list3.返回值类型: void实现步骤:1.打印表头信息2.使用for循环遍历ArrayList集合对象list2.1获取当前Student对象2.2获取当前Student对象的学号,姓名,年龄,地址信息2.3打印当前Student对象的学号,姓名,年龄,地址信息*/publicstaticvoidprintStudent(ArrayList<Student> list){//1.打印表头信息System.out.println("学号\t\t姓名\t\t年龄\t\t地址");//2.使用for循环遍历ArrayList集合对象listfor(int i =0; i < list.size(); i++){//2.1获取当前Student对象Student stu = list.get(i);//2.2获取当前Student对象的学号,姓名,年龄,地址信息String id = stu.getId();String name = stu.getName();String age = stu.getAge();String address = stu.getAddress();//2.3打印当前Student对象的学号,姓名,年龄,地址信息System.out.println(id+"\t\t"+name+"\t\t"+age+"\t\t"+address);}}
1.6 学生管理系统之查看所有学生升级版
//修改printStudent方法
修复一个bug:如果查看时,没有学生信息,提示"先添加,再查看",跳转到欢迎界面解决方案:在打印表头信息前,先判断ArrayList集合对象中是否有学生对象如果没有(1.集合是空 2.集合长度是0):打印提示信息"先添加,再查看"结束方法: 不让方法继续执行如果有:遍历输出
/*实现查看所有学生的功能:定义方法printStudent,遍历输出方法参数ArrayList集合对象中的所有Student对象的信息三要素:1.方法名称: printStudent2.参数列表: ArrayList<Student> list3.返回值类型: void实现步骤:0.判断如果集合长度为0,打印提示信息"先添加,再查看",然后结束方法1.打印表头信息2.使用for循环遍历ArrayList集合对象list2.1获取当前Student对象2.2获取当前Student对象的学号,姓名,年龄,地址信息2.3打印当前Student对象的学号,姓名,年龄,地址信息*/publicstaticvoidprintStudent(ArrayList<Student> list){//0.判断如果集合长度为0,打印提示信息"先添加,再查看",然后结束方法if(list.size()==0){System.out.println("先添加,再查看");return;//结束方法,返回到方法的调用处}//1.打印表头信息System.out.println("学号\t\t姓名\t\t年龄\t\t地址");//2.使用for循环遍历ArrayList集合对象listfor(int i =0; i < list.size(); i++){//2.1获取当前Student对象Student stu = list.get(i);//2.2获取当前Student对象的学号,姓名,年龄,地址信息String id = stu.getId();String name = stu.getName();String age = stu.getAge();String address = stu.getAddress();//2.3打印当前Student对象的学号,姓名,年龄,地址信息System.out.println(id+"\t\t"+name+"\t\t"+age+"\t\t"+address);}}
1.7 学生管理系统之删除学生
//把欢迎界面switch中的输出语句替换成以下方法的调用
witch (choose){//...//7.根据choose中不同的数字,执行不同的操作case2://调用方法,删除学生deleteStudent(list);break;//...}/*实现删除学生的功能:根据学生的id,删除对应的学生定义方法deleteStudent,根据键盘录入的学生的id,从ArrayList集合中删除对应的Student类型的对象三要素:1.方法名称: deleteStudent2.参数列表: ArrayList<Student> list3.返回值类型: void实现步骤:1.创建键盘录入Scanner类的对象2.获取键盘录入的要删除的学生的学号,保存到String变量delId中3.使用for循环遍历ArrayList集合对象list3.1获取当前元素,保存到Student类型变量stu中3.2获取当前元素Student对象stu的学号,保存到String变量id中3.3判断如果键盘录入的学号delId的值和 当前学生对象的学号id的值相同(内容相同): 说明该学生是要被删除的学生对象3.4从ArrayList集合对象list中,删除当前学生对象stu3.5提示"删除成功"3.6结束循环*/publicstaticvoiddeleteStudent(ArrayList<Student> list){//1.创建键盘录入Scanner类的对象Scanner sc =newScanner(System.in);//2.获取键盘录入的要删除的学生的学号,保存到String变量delId中System.out.println("请输入要删除的学生的id");String delId = sc.nextLine();//3.使用for循环遍历ArrayList集合对象listfor(int i =0; i < list.size(); i++){//3.1获取当前元素,保存到Student类型变量stu中Student stu = list.get(i);//3.2获取当前元素Student对象stu的学号,保存到String变量id中String id = stu.getId();//3.3判断如果键盘录入的学号delId的值和 当前学生对象的学号id的值相同(内容相同): 说明该学生是要被删除的学生对象if(id.equals(delId)){//3.4从ArrayList集合对象list中,删除当前学生对象stulist.remove(i);//3.5提示"删除成功"System.out.println("删除成功");//3.6结束循环break;}}}
1.8 学生管理系统之修改学生
//把欢迎界面switch中的输出语句替换成以下方法的调用
witch (choose){//...//7.根据choose中不同的数字,执行不同的操作case3://调用方法,修改学生updateStudent(list);break;//...}/*实现修改学生的功能:根据学生的id,修改对应的学生定义方法updateStudent,根据键盘录入的学生的id,修改存储在ArrayList集合对象中的学生对象的其它信息三要素:1.方法名称: updateStudent2.参数列表: ArrayList<Student> list3.返回值类型: void实现步骤:1.创建键盘录入Scanner类的对象2.获取键盘录入的要修改的学生的学号,保存到String变量updateId中3.获取键盘录入的要修改的学生的新的姓名,保存String变量name中4.获取键盘录入的要修改的学生的新的年龄,保存String变量age中5.获取键盘录入的要修改的学生的新的地址,保存String变量address中6.使用for循环遍历ArrayList集合对象7.1获取当前元素,保存到Student类型变量stu中7.2获取当前元素Student对象stu的学号,保存到String变量id中7.3判断如果键盘录入的学号updateId的值和 当前学生对象的学号id的值相同(内容相同): 说明该学生是要被修改的学生对象7.4使用当前元素Student对象stu调用set方法,修改其它成员变量的值7.5提示"修改成功"7.6结束循环*/publicstaticvoidupdateStudent(ArrayList<Student> list){//1.创建键盘录入Scanner类的对象Scanner sc =newScanner(System.in);//2.获取键盘录入的要修改的学生的学号,保存到String变量updateId中System.out.println("请输入要修改信息的学生的id:");String updateId = sc.nextLine();//3.获取键盘录入的要修改的学生的新的姓名,保存String变量name中System.out.println("请输入新的姓名:");String name = sc.nextLine();//4.获取键盘录入的要修改的学生的新的年龄,保存String变量age中System.out.println("请输入新的年龄:");String age = sc.nextLine();//5.获取键盘录入的要修改的学生的新的地址,保存String变量address中System.out.println("请输入新的地址:");String address = sc.nextLine();//6.使用for循环遍历ArrayList集合对象for(int i =0; i < list.size(); i++){//7.1获取当前元素,保存到Student类型变量stu中Student stu = list.get(i);//7.2获取当前元素Student对象stu的学号,保存到String变量id中String id = stu.getId();//7.3判断如果键盘录入的学号updateId的值和 当前学生对象的学号id的值相同(内容相同): 说明该学生是要被修改的学生对象if(id.equals(updateId)){//7.4使用当前元素Student对象stu调用set方法,修改其它成员变量的值stu.setName(name);stu.setAge(age);stu.setAddress(address);//7.5提示"修改成功"System.out.println("修改成功");//7.6结束循环break;}}}
//为了修改bug,定义方法/*定义方法idIsUsed: 判断方法参数指定的id,在方法参数ArrayList集合对象中是否存在(已经被使用)三要素:1.方法名称: idIsUsed2.参数列表: ArrayList<Student> list,String id3.返回值类型: boolean实现步骤:1.使用for循环遍历方法参数ArrayList集合对象list1.1获取当前元素,保存到Student类型变量stu中1.2判断方法参数id 如果 等于当前Student对象stu的id值: 说明id被使用过了 ,直接返回true2.for循环结束,执行到这里,说明id没有被使用过,直接返回false*/publicstaticbooleanidIsUsed(ArrayList<Student> list,String id){//1.使用for循环遍历方法参数ArrayList集合对象listfor(int i =0; i < list.size(); i++){//1.1获取当前元素,保存到Student类型变量stu中Student stu = list.get(i);//1.2判断方法参数id 如果 等于当前Student对象stu的id值: 说明id被使用过了 ,直接返回trueif(id.equals(stu.getId())){returntrue;}}//2.for循环结束,执行到这里,说明id没有被使用过,直接返回falsereturnfalse;}
1.9 学生管理系统添加操作之学号存在问题
修改bug:在添加学生信息时,输入的学号id如果已经被使用,会要求重新录入一个新的id,直到录入的id可以使用为止请输入学号:001您输入的id值已经被使用,请重新录入001您输入的id值已经被使用,请重新录入002您输入的id值已经被使用,请重新录入解决方案:使用idIsUsed方法,判断id是否被使用过,修改添加学生addStudent方法/*实现添加学生功能:定义方法addStudent,获取键盘录入的学生信息,封装成学生对象,添加到ArrayList集合中三要素:1.方法名称: addStudent2.参数列表: ArrayList<Student> list3.返回值类型: void实现步骤:1.创建键盘录入Scanner类的对象2.获取键盘录入的学生信息,分别保存到不同的String变量中3.把获取到的学生信息封装成Student类型的对象stu4.把步骤3封装的Student类型的对象stu添加到方法参数集合对象list中5.提示"添加成功"*/publicstaticvoidaddStudent(ArrayList<Student> list){//1.创建键盘录入Scanner类的对象Scanner sc =newScanner(System.in);//2.获取键盘录入的学生信息,分别保存到不同的String变量中System.out.println("请输入学号:");String id;while(true){id = sc.nextLine();//获取键盘录入的学生的id//判断当前输入的id值是否已经别使用boolean result =idIsUsed(list, id);//如果result的值是false,说明id没有被使用过,可以用if(result ==false){break;}/*//以上代码可以简化为if(!idIsUsed(list,id)) {break;}*///执行到这里,说明当前输入的id值已经被使用了,得重新录入System.out.println("您输入的id值("+id+")已经被使用,请重新录入");}System.out.println("请输入姓名:");String name = sc.nextLine();System.out.println("请输入年龄:");String age = sc.nextLine();System.out.println("请输入地址:");String address = sc.nextLine();//3.把获取到的学生信息封装成Student类型的对象stuStudent stu =newStudent(id, name, age, address);//4.把步骤3封装的Student类型的对象stu添加到方法参数集合对象list中list.add(stu);//5.提示"添加成功"System.out.println("添加成功");}
1.10 学生管理系统之删除操作学号不存在问题
修改bug:如果输入的要删除的学生信息的id不存在: 不会让我们重新输入id,直接跳转到欢迎界面请输入要删除的学生的id001您输入的要删除的学号不存在,无法完成删除操作,请选择其它操作解决方案:使用idIsUsed方法,判断id是否被使用过(有才能删除,没有无法删除),修改删除学生deleteStudent方法/*实现删除学生的功能:根据学生的id,删除对应的学生定义方法deleteStudent,根据键盘录入的学生的id,从ArrayList集合中删除对应的Student类型的对象三要素:1.方法名称: deleteStudent2.参数列表: ArrayList<Student> list3.返回值类型: void实现步骤:1.创建键盘录入Scanner类的对象2.获取键盘录入的要删除的学生的学号,保存到String变量delId中2.1调用idIsUsed方法,判断delId如果在ArrayList集合中不存在,直接结束方法3.使用for循环遍历ArrayList集合对象list3.1获取当前元素,保存到Student类型变量stu中3.2获取当前元素Student对象stu的学号,保存到String变量id中3.3判断如果键盘录入的学号delId的值和 当前学生对象的学号id的值相同(内容相同): 说明该学生是要被删除的学生对象3.4从ArrayList集合对象list中,删除当前学生对象stu3.5提示"删除成功"3.6结束循环*/publicstaticvoiddeleteStudent(ArrayList<Student> list){//1.创建键盘录入Scanner类的对象Scanner sc =newScanner(System.in);//2.获取键盘录入的要删除的学生的学号,保存到String变量delId中System.out.println("请输入要删除的学生的id");String delId = sc.nextLine();//2.1调用idIsUsed方法,判断delId如果在ArrayList集合中不存在,直接结束方法if(!idIsUsed(list,delId)){//idIsUsed(list,delId): 返回true,说明存在 返回false,说明不存在System.out.println("您输入的要删除的学号("+delId+")不存在,无法完成删除操作,请选择其它操作 ");return;}//3.使用for循环遍历ArrayList集合对象listfor(int i =0; i < list.size(); i++){//3.1获取当前元素,保存到Student类型变量stu中Student stu = list.get(i);//3.2获取当前元素Student对象stu的学号,保存到String变量id中String id = stu.getId();//3.3判断如果键盘录入的学号delId的值和 当前学生对象的学号id的值相同(内容相同): 说明该学生是要被删除的学生对象if(id.equals(delId)){//3.4从ArrayList集合对象list中,删除当前学生对象stulist.remove(i);//3.5提示"删除成功"System.out.println("删除成功");//3.6结束循环break;}}}
1.11
修改bug:如果输入的要修改的学生信息的id不存在: 不会让我们重新输入id,直接跳转到欢迎界面请输入要修改信息的学生的id:003您输入的要修改的学号不存在,无法完成修改操作,请选择其它操作...欢迎界面解决方案:使用idIsUsed方法,判断id是否被使用过(有才能修改,没有无法修改),修改修改学生updateStudent方法/*实现修改学生的功能:根据学生的id,修改对应的学生定义方法updateStudent,根据键盘录入的学生的id,修改存储在ArrayList集合对象中的学生对象的其它信息三要素:1.方法名称: updateStudent2.参数列表: ArrayList<Student> list3.返回值类型: void实现步骤:1.创建键盘录入Scanner类的对象2.获取键盘录入的要修改的学生的学号,保存到String变量updateId中2.1调用idIsUsed方法,判断delId如果在ArrayList集合中不存在,直接结束方法3.获取键盘录入的要修改的学生的新的姓名,保存String变量name中4.获取键盘录入的要修改的学生的新的年龄,保存String变量age中5.获取键盘录入的要修改的学生的新的地址,保存String变量address中6.使用for循环遍历ArrayList集合对象7.1获取当前元素,保存到Student类型变量stu中7.2获取当前元素Student对象stu的学号,保存到String变量id中7.3判断如果键盘录入的学号updateId的值和 当前学生对象的学号id的值相同(内容相同): 说明该学生是要被修改的学生对象7.4使用当前元素Student对象stu调用set方法,修改其它成员变量的值7.5提示"修改成功"7.6结束循环*/publicstaticvoidupdateStudent(ArrayList<Student> list){//1.创建键盘录入Scanner类的对象Scanner sc =newScanner(System.in);//2.获取键盘录入的要修改的学生的学号,保存到String变量updateId中System.out.println("请输入要修改信息的学生的id:");String updateId = sc.nextLine();//2.1调用idIsUsed方法,判断updateId如果在ArrayList集合中不存在,直接结束方法if(!idIsUsed(list,updateId)){//idIsUsed(list,updateId): 返回true,说明存在 返回false,说明不存在System.out.println("您输入的修改的学号("+updateId+")不存在,无法完成修改操作,请选择其它操作 ");return;}//3.获取键盘录入的要修改的学生的新的姓名,保存String变量name中System.out.println("请输入新的姓名:");String name = sc.nextLine();//4.获取键盘录入的要修改的学生的新的年龄,保存String变量age中System.out.println("请输入新的年龄:");String age = sc.nextLine();//5.获取键盘录入的要修改的学生的新的地址,保存String变量address中System.out.println("请输入新的地址:");String address = sc.nextLine();//6.使用for循环遍历ArrayList集合对象for(int i =0; i < list.size(); i++){//7.1获取当前元素,保存到Student类型变量stu中Student stu = list.get(i);//7.2获取当前元素Student对象stu的学号,保存到String变量id中String id = stu.getId();//7.3判断如果键盘录入的学号updateId的值和 当前学生对象的学号id的值相同(内容相同): 说明该学生是要被修改的学生对象if(id.equals(updateId)){//7.4使用当前元素Student对象stu调用set方法,修改其它成员变量的值stu.setName(name);stu.setAge(age);stu.setAddress(address);//7.5提示"修改成功"System.out.println("修改成功");//7.6结束循环break;}}}
目录 简介Lic安装1、需要手动安装MySQL,**建库**2、启动命令3、[ERROR] GetNodeMetric Fail:the server is currently unable to handle the request (get nodes.metrics.k8s.io qfusion-1) 使用总结优点优化 补充1:layui、layuimini和beego的详细介绍1.…
Two BAHD Acyltransferases Catalyze the Last Step in the Shikonin/Alkannin Biosynthetic Pathway
两个BAHD酰基转移酶催化了紫草素/左旋紫草素生物合成途径中的最后一步
一个BAHD酰基转移酶专门催化紫草素的酰基化,而另一个BAHD酰基转移酶则仅催化紫草素的对映…