Java类集的应用示范
类集在实际应用中非常重要,下面就是一个典型的小项目,可以体会一下类集的强大:
–1.一对多关系:
/*
一个学校有学校名称,学校里有多个学生,但学生数量是不确定的,不能用数组直接实现;
可以把学生实例放入类集中操作!实现简单的一对多关系;
*/
package com.mldn;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
//—————-school类:
class School
{
private String name = null; // 学校名字
private List
public School()
{
this.allStudent = new ArrayList
}
public School(String name)
{
this(); // 初始化
this.name = name;
}
public String getName()
{
return this.name; // 获取当前学校名称
}
public List
{
return this.allStudent; // 获取当前学校的所有学生的集合
}
public void setName(String name)
{
this.name = name; // 设置学校名称
}
/*public void setAllStudent(List
{
this.allStudent = studentList; // 设置学生集合,类集操作替代了本方法
}*/
public String toString()
{
return this.name;
}
}
//—————-Student类:
class Student
{
private String name = null; // 学生名
private int age = 0; // 年龄
private School school = null; // 学生所在的学校
public Student(String name, int age)
{
this.name = name;
this.age = age;
}
public String getName()
{
return this.name; // 获取姓名
}
public int getAge()
{
return this.age; // 获取年龄
}
public School getSchool()
{
return this.school; // 获取学校
}
public void setName(String name)
{
this.name = name; // 设置姓名
}
public void setAge(int age)
{
this.age = age; // 设在年龄
}
public void setSchool(School school)
{
this.school = school; // 设置学校
}
public String toString()
{
return “姓名:” + this.getName() + ” 年龄:” + this.getAge() + ” 学校:” + this.getSchool();
}
}
// —————主类:
public class SchoolToStu
{
public static void main(String[] args)
{
School school = new School(“北京大学”); // 实例化一个学校
Student stu1 = new Student(“张三”, 20); // 实例化一个学生
Student stu2 = new Student(“李四”, 22);
Student stu3 = new Student(“王五”, 23);
stu1.setSchool(school); // 为学生设置学校
stu2.setSchool(school);
stu3.setSchool(school);
school.getAllStudent().add(stu1); // 为学校添加学生
school.getAllStudent().add(stu2);
school.getAllStudent().add(stu3);
List
Iterator
while (iter.hasNext())
{
System.out.println(iter.next()); // 打印每个学生的信息
}
}
}
/*
ubuntu@xu-desktop:~$ java com.mldn.SchoolToStu
姓名:张三 年龄:20 学校:北京大学
姓名:李四 年龄:22 学校:北京大学
姓名:王五 年龄:23 学校:北京大学
*/
—-类集:多对多关系:
/*
一个学生可以选择多门课程,一门课程可以被多个学生选择;
这是多对多的关系,可以由类集实现!
*/
package com.mldn;
import java.util.List;
import java.util.ArrayList;
import java.util.Iterator;
//—————-Student类:
class Student
{
private String name = null; // 学生名
private int age = 0; // 年龄
private List
public Student()
{
this.allCourse = new ArrayList
}
public Student(String name, int age)
{
this(); // 初始化
this.name = name;
this.age = age;
}
public String getName()
{
return this.name; // 获取姓名
}
public int getAge()
{
return this.age; // 获取年龄
}
public List
{
return this.allCourse; // 获取课程
}
public void setName(String name)
{
this.name = name; // 设置姓名
}
public void setAge(int age)
{
this.age = age; // 设在年龄
}
public String toString()
{
return ” 姓名:” + this.getName() + ” 年龄:” + this.getAge();
}
}
//——-Course类:
class Course
{
private String name = null; // 课程名字
private List
public Course()
{
this.allStudent = new ArrayList
}
public Course(String name)
{
this(); // 初始化
this.name = name;
}
public String getName()
{
return this.name; // 获取当前课程名称
}
public List
{
return this.allStudent; // 获取选择当前课程的所有学生的集合
}
public void setName(String name)
{
this.name = name; // 设置课程名称
}
public String toString()
{
return ” 课程: ” + this.name;
}
}
public class MoreToMore
{
public static void main(String[] args)
{
Student stu1 = new Student(“张三”, 24); // 实例化一个学生
Student stu2 = new Student(“李四”, 25);
Student stu3 = new Student(“王五”, 23);
Student stu4 = new Student(“大兵”, 24); // 实例化一个学生
Student stu5 = new Student(“小力”, 25);
Student stu6 = new Student(“王刚”, 23);
Course course1 = new Course(“高等数学”); // 实例化一门课程
Course course3 = new Course(“企业管理”); // 实例化一门课程
// 选择高等数学的有三个:
stu1.getAllCourse().add(course1);
stu2.getAllCourse().add(course1);
stu3.getAllCourse().add(course1);
course1.getAllStudent().add(stu1); // 选择本课程的学生
course1.getAllStudent().add(stu2);
course1.getAllStudent().add(stu3);
// 选择企业管理的有四个:
stu1.getAllCourse().add(course3);
stu6.getAllCourse().add(course3);
stu5.getAllCourse().add(course3);
stu4.getAllCourse().add(course3);
course3.getAllStudent().add(stu6); // 选择本课程的学生
course3.getAllStudent().add(stu5);
course3.getAllStudent().add(stu4);
course3.getAllStudent().add(stu1);
Iterator
System.out.println(stu1.getName() + “所选课程:”);
while (iter1.hasNext())
{
System.out.println(iter1.next()); // 打印学生选课信息
}
Iterator
System.out.println(“选择高等数学的学生:”);
while (iter2.hasNext())
{
System.out.println(iter2.next()); // 打印学生选课信息
}
Iterator
System.out.println(“选择企业管理的学生:”);
while (iter3.hasNext())
{
System.out.println(iter3.next()); // 打印学生选课信息
}
}
}
/*
ubuntu@xu-desktop:~$ java com.mldn.MoreToMore
张三所选课程:
课程: 高等数学
课程: 企业管理
选择高等数学的学生:
姓名:张三 年龄:24
姓名:李四 年龄:25
姓名:王五 年龄:23
选择企业管理的学生:
姓名:王刚 年龄:23
姓名:小力 年龄:25
姓名:大兵 年龄:24
姓名:张三 年龄:24
*/
声明: 除非转自他站(如有侵权,请联系处理)外,本文采用 BY-NC-SA 协议进行授权 | 嗅谱网
转载请注明:转自《Java类集的应用示范》
本文地址:http://www.xiupu.net/archives-128.html
关注公众号:
微信赞赏
支付宝赞赏