黑马程序员Java零基础视频教程_上部(Java入门,含斯坦福大学练习题+力扣算

P197Set集合三种遍历方式的实现

----------------华丽的分界线--------------------------

P108未看视频先写的,仅供参考

P110 字符串打乱,仅供参考

P110 验证码,数字随机位置,仅供参考

P110字符串转数字后的乘积

P114通过id查找对应的用户信息,未开先写,仅供参考

P115返回小于三千的手机信息,此处自己进行了拓展,较为复杂
接下来是学生管理系统代码
JavaBean类我就不在此进行copy了
package com.itheima.studentmanagersystem;
import java.security.Provider;
import java.util.ArrayList;
import java.util.Scanner;
/**
* @author XiangTao
*/
public class StudentManagerSystem {
public static void main(String[] args) {
ArrayList<Student> list = new ArrayList<>();
Scanner sc = new Scanner(System.in);
//添加初始化数据
Student s1 = new Student("heima001", "张三", 23, "南京");
Student s2 = new Student("heima002", "李四", 24, "北京");
Student s3 = new Student("heima003", "王五", 25, "深圳");
list.add(s1);
list.add(s2);
list.add(s3);
printMenu:
while (true) {
printMenu();
String choose = sc.next();
switch (choose) {
case "1":
add(list);
break;
case "2":
drop(list);
break;
case "3":
alter(list);
break;
case "4":
select(list);
break;
case "5":
System.out.println("退出成功!");
break printMenu;
default:
System.out.println("输入错误,请重新输入!");
break;
}
}
}
/**
* @注释 打印初始菜单
*/
public static void printMenu() {
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("请输入您的选择: ");
}
/**
* @param list
* @注释 添加学生功能
*/
public static void add(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入学生信息");
System.out.println("请输入id: ");
String id = sc.next();
boolean flag = constraintID(list, id);
if (!flag) {
Student s = new Student();
while (true) {
System.out.println("请输入姓名: ");
String name = sc.next();
boolean result = checkName(name);
if (!result) {
System.out.println("姓名格式有误,请重新输入: ");
} else {
System.out.println("请输入年龄: ");
int age = sc.nextInt();
System.out.println("请输入家庭住址: ");
String address = sc.next();
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
list.add(s);
System.out.println("添加成功");
break;
}
}
} else {
System.out.println(id + "已存在,请重新输入");
}
}
private static boolean checkName(String username) {
//1.长度在3到15之间
int len = username.length();
if (len < 3 || len > 15) {
return false;
}
//2.必须是字母和数字的组合
for (int i = 0; i < username.length(); i++) {
char c = username.charAt(i);
if (!(c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z') || (c >= '0' && c <= '9')) {
return false;
}
}
//3.不能是纯数字
int count = 0;
for (int i = 0; i < username.length(); i++) {
char c = username.charAt(i);
if ((c >= 'a' && c <= 'z') || (c >= 'A' && c <= 'Z')) {
count++;
}
}
return count > 0;
}
/**
* @param list
* @param id
* @return
* @注释 检查添加时id是否唯一
*/
public static boolean constraintID(ArrayList<Student> list, String id) {
return getIDIndex(list, id) >= 0;
}
/**
* @param list
* @param id
* @return
* @注释 id存在返回索引, 否则返回-1
*/
public static int getIDIndex(ArrayList<Student> list, String id) {
for (int i = 0; i < list.size(); i++) {
Student stu = list.get(i);
if (stu.getId().equals(id)) {
return i;
}
}
return -1;
}
/**
* @param list
* @注释 删除学生功能
*/
public static void drop(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入需要删除的学生ID: ");
String id = sc.next();
int index = getIDIndex(list, id);
if (index != -1) {
list.remove(index);
System.out.println("删除成功");
} else {
System.out.println(id + "不存在");
}
}
/**
* @param list
* @注释 修改学生信息功能
*/
public static void alter(ArrayList<Student> list) {
Scanner sc = new Scanner(System.in);
Student s = new Student();
System.out.println("请输入需要修改的学生id: ");
String id = sc.next();
int index = getIDIndex(list, id);
if (index >= 0) {
while (true) {
System.out.println("请输入修改后的姓名: ");
String name = sc.next();
boolean result = checkName(name);
if (!result) {
System.out.println("姓名格式有误,请重新输入: ");
} else {
System.out.println("请输入修改后的年龄: ");
int age = sc.nextInt();
System.out.println("请输入修改后的家庭住址: ");
String address = sc.next();
//删除原有数据
list.remove(index);
s.setId(id);
s.setName(name);
s.setAge(age);
s.setAddress(address);
list.add(s);
System.out.println("修改成功");
break;
}
}
} else {
System.out.println(id + "不存在");
}
}
/**
* @param list
* @注释 查询学生信息功能
*/
public static void select(ArrayList<Student> list) {
if (list.size() == 0) {
System.out.println("当前无学生信息, 请添加后再查询");
}
System.out.println("id\t\t姓名\t\t年龄\t\t家庭住址");
for (int i = 0; i < list.size(); i++) {
Student s = list.get(i);
System.out.println(s.getId() + "\t" + s.getName() + "\t" +
s.getAge() + "\t" + s.getAddress());
}
}
}
P122定义工具类ArrayUtil

P122定义工具类StudentUtil

P132多态的综合练习,此处只供参考,只因未看先写,只展示person类

P143匿名内部类的具体实现

P175第一题:

P177基础查找课堂练习2

P178分块查找(无规律的数据)
