Java基础(九)集合与学生管理系统

java集合
练习1:创建一个学生数组,存储三个学生对象
1.定义学生类
2.创建学生数组
3.创建学生对象
4.把学生对象作为元素赋值给学生数组
5.遍历学生数组
自动生成构造方法:

代码区域右键—source–generate Constructor from superclass无参构造方法
代码区域右键—source—Generate Constructor using Fields 带参构造方法
自动生成getXxx()/setXxx():
代码区域右键—source–Generate Getters and Setters

public class Student {
	private String name;//成员变量
	private int age;
	public Student() {//无参构造方法
		
	}
	public Student(String name, int age) {//带参构造方法
		super();
		this.name = name;
		this.age = age;
	}
	public String getName() {
		return name;
	}
	public void setName(String name) {
		this.name = name;
	}
	public int getAge() {
		return age;
	}
	public void setAge(int age) {
		this.age = age;
	}
	
Student [] students=new Student[3];//创建学生数组
		Student s1=new Student("刘备",30);//创建学生对象
		Student s2=new Student("曹操",35);
		Student s3=new Student("孙权",20);
		students[0]=s1;//把学生对象作为元素赋值给学生数组
		students[1]=s2;
		students[2]=s3;
        for(int i=0;i<students.length;i++) {//遍历学生数组
        	System.out.println(students[i].getName()+"---"+students[i].getAge());
        	
        }

为什么会出现集合类:
我们学习的是面向对象编程语言,而面向对象编程语言对事物的描述都是通过对象来体现的
为了方便对多个对象进行操作,我们就必须对这多个对象进行存储,而要想对多个对象进行存储,就不能是一个基本的变量,而应该是一个容器类型的变量。
到目前为止,我们学习过了哪些容器类型的数据?StringBuilder<结果是字符串类型> 数组<长度固定适应不了变化的需求>
java提供了集合类供我们使用
集合类的特点:长度可变
创建集合对象
ArrayList array =new ArrayList();
ArrayList:
大小可变数组的实现
:是一种特殊的数据类型,泛型。
在出现E的地方我们使用引用数据类型替换即可
ArrayList,ArrayList
构造方法:
ArrayList()
添加元素:
public boolean add(E e):添加元素
public void add(int index, E element):在指定的索引处添加一个元素

//创建集合对象
		ArrayList<String> array=new ArrayList<String>();
		array.add("hello");
		array.add("world");
		array.add(1,"love");
		
		System.out.println("array:"+array);
	}

构造方法:
获取元素
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):修改指定索引处的元素,返回被修改的元素

ArrayList<String> array=new ArrayList<String>();//创建ArrayList对象
	array.add("hello");
	array.add("world");
	array.add("java");
	//public E get(int index):返回指定索引处的位置
	System.out.println("get:"+array.get(0));
	//public int size():返回集合中的元素个数
	System.out.println("size:"+array.size());
	//public boolean remove(object o):删除指定的元素,返回删除是否成功
	System.out.println("remove:"+array.remove("hello"));
	//public E remove(int index):删除指定索引处的元素,返回被删除的元素
	System.out.println("remove:"+array.remove(0));
	//public E set(int index ,E element):修改指定索引处的元素,返回被修改的元素
	System.out.println("set:"+array.set(0, "love"));
	System.out.println("array:"+array);
	

ArrayList集合的遍历
最标准的用法<通过size 和get方法>

ArrayList<String> array=new ArrayList<String>();
	array.add("hello");
	array.add("world");
	array.add("java");
	for(int i=0;i<array.size();i++) {
		String s=array.get(i);
		System.out.println(s);
	}
}

练习1:存储字符串遍历
1.创建集合对象
2.添加字符串元素
3.遍历集合

ArrayList<String> array=new ArrayList<String>();//1.创建集合对象
	array.add("张翠山");
	array.add("殷素素");
	array.add("张无忌");
	array.add("赵敏");
	for(int i=0;i<array.size();i++) {
		String s=array.get(i);
		System.out.println(s);
	}

练习2:给定一个字符串数组:{“张三丰”,“宋远桥”,“张无忌”,“殷梨亭”,“张翠山”,“莫声谷”},将数组中的元素添加到集合中,并把所有的张姓人员打到控制台
1.定义字符串数组
2.创建集合对象
3.遍历字符串数组,获取每个字符串元素
4.把获取到的字符串元素添加到集合
5.遍历集合
要判断每一个字符元素是否以“张”开头

String[] s1= {"张三丰","宋远桥","张无忌","殷梨亭","张翠山","莫声谷"};
		ArrayList<String> array=new ArrayList<String>();
		
		for(int i=0;i<s1.length;i++) {
			array.add(s1[i]);
		}
		for(int j=0;j<array.size();j++) {
			String s2=array.get(j);
			if(s2.startsWith("张")) {
				System.out.println(s2);
			}
		}

练习3:存储自定义对象并遍历
分析:1自定义学生类
2.创建集合对象
3.把学生对象作为元素添加到集合中
4遍历集合

ArrayList<Students> s1=new ArrayList<Students>();//创建集合对象
	Students s2=new Students("张三",18);//创建学生对象
	Students s3=new Students("王二",30);
	Students s4=new Students("张无极",99);
	Students s5=new Students("乔哈里斯",55);
	s1.add(s2);
	s1.add(s3);
	s1.add(s4);
	s1.add(s5);
	for(int i=0;i<s1.size();i++) {
		String name=s1.get(i).getName();
		int age=s1.get(i).getAge();	
		System.out.println("学生姓名:"+name+"年龄"+age);}
	

练习4:键盘录入数据存储并遍历
1.定义 学生类
2创建集合对象
3.键盘录入数据,创建学生对象,把键盘录入的数据赋值给学生对象的成员变量
4.遍历集合

ArrayList<Student> array=new ArrayList<Student>();//创建集合对象
		addStudent(array);
		addStudent(array);
		addStudent(array);
		for(int i=0;i<array.size();i++) {
			Student s1=array.get(i);
			System.out.println(s1.getName()+"---"+s1.getAge());
		}
}
	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.add(s);
	}
}

练习5:学生管理系统

public class Student {
private String sid;
private String name;
private String age;
private String livingPlace;
public Student() {
	
}
public Student(String sid, String name, String age, String livingPlace) {
	
	this.sid = sid;
	this.name = name;
	this.age = age;
	this.livingPlace = livingPlace;
}
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 getLivingPlace() {
	return livingPlace;
}
public void setLivingPlace(String livingPlace) {
	this.livingPlace = livingPlace;
}
ArrayList<Student> s1=new ArrayList<Student>();
	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("请输入您的选择:");
		Scanner sc=new Scanner(System.in);
		int option=sc.nextInt();
		
		switch (option) {
			case 1:ViewStudents(s1);
			      break;
			case 2:addStudents(s1);
			      break;
			case 3:DeleteStudents(s1);
			      break;
			case 4:SetStudents(s1);
			     break;
			case 5:System.out.println("谢谢您的使用");
			       System.exit(0);//jvm退出
			      break;
}
}
}
public static void ViewStudents(ArrayList<Student> s1) {
	if(s1.size()==0) {
		System.out.println("学生管理系统内部信息为空,请先存储学生信息再查询");
		return;
	}
	else {//\t是一个tab键的位置
		System.out.println("学号\t\t姓名\t年龄\t居住地");
		for(int i=0;i<s1.size();i++) {
			Student ss=s1.get(i);
			System.out.println(ss.getSid()+"\t"+ss.getName()+"\t"+ss.getAge()+"\t"+ss.getLivingPlace());
		}
		
	}
	
}
public static void addStudents(ArrayList<Student> s1) {
	Scanner sc=new Scanner(System.in);
	String sid;//为了让id被访问到
	while(true) {
		System.out.println("请输入学号:");
		boolean flag=false;
		 sid=sc.nextLine();
		for(int i=0;i<s1.size();i++) {
			Student sss=s1.get(i);
			
			if(sid.equals(sss.getSid())) {
				flag=true;
				break;
			}
		}
		if (flag) {
			System.out.println("您输入的学号已被注册,请重新输入其他学号");
		}else {
			break;
		}
	}
	
	System.out.println("请输入学生姓名:");
	String name=sc.nextLine();
	System.out.println("请输入学生年龄:");
	String age=sc.nextLine();
	System.out.println("请输入所在居住地:");
	String livingPlace=sc.nextLine();
	Student s2=new Student();
	s2.setSid(sid);
	s2.setName(name);
	s2.setAge(age);
	s2.setLivingPlace(livingPlace);
	s1.add(s2);
	System.out.println("添加学生成功");
}
public static void DeleteStudents(ArrayList<Student> s1) {
	System.out.println("请输入要删除学生学号:");
	Scanner sc=new Scanner(System.in);
	String sid=sc.nextLine();
	for(int i=0;i<s1.size();i++) {
		Student s3=s1.get(i);
		if(sid.equals(s3.getSid())) {
			s1.remove(i);
			break;
		}
	}
	System.out.println("删除学生成功");
}
public static void SetStudents(ArrayList<Student> s1) {
	System.out.println("要修改学生的学号:");
	Scanner sc=new Scanner(System.in);
	String sid=sc.nextLine();
	System.out.println("请输入新的姓名:");
	String name=sc.nextLine();
	System.out.println("请输入新的年龄:");
	String age=sc.nextLine();
	System.out.println("请输入新的居住地:");
	String livingPlace=sc.nextLine();
	for(int i=0;i<s1.size();i++) {
		if(sid.equals(s1.get(i).getSid())) {
			s1.get(i).setName(name);
			s1.get(i).setAge(age);
			s1.get(i).setLivingPlace(livingPlace);
		}
	}
	System.out.println("修改学生信息成功");
	
}
}

你可能感兴趣的:(java学习,java,编程语言)