java:类集操作,多对多的关系
java:类集操作,多对多的关系
//一个课程有多个学生报名,
//一个学生可以报名多个课程
demo.java, Student.java, Course.java'
public class Course {
private String name;
private int course;
private List<Student> allStudent;
public Course() {
this.allStudent = new ArrayList<Student>();
}
public Course(String name, int course) {
this();
this.name = name;
this.course = course;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getCourse() {
return course;
}
public void setCourse(int course) {
this.course = course;
}
public List<Student> getAllStudent() {
return allStudent;
}
public String toString()
{
return "课程:"+this.name +",学分:"+this.course;
}
}
Student.java
public class Student {
private String name;
private int age;
private List<Course> allCourse;
public Student() {
this.allCourse = new ArrayList<Course>();
}
public Student(String name, int age) {
this();
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;
}
public List<Course> getAllCourse() {
return allCourse;
}
public String toString()
{
return "学生:"+this.name + ",年龄:"+this.age;
}
}
demo.java
//一个学生可以报名多个课程
Course c1 = new Course("java",5);
Course c2 = new Course("linux",5); Student st1 = new Student("张三",22);
Student st2 = new Student("李四",33);
Student st3 = new Student("王五",32);
Student st4 = new Student("田七",29);
Student st5 = new Student("赵六",28); //第一课程
c1.getAllStudent().add(st1);
c1.getAllStudent().add(st3);
st1.getAllCourse().add(c1);
st2.getAllCourse().add(c2); //第二课程
c2.getAllStudent().add(st1);
c2.getAllStudent().add(st2);
c2.getAllStudent().add(st3);
c2.getAllStudent().add(st4);
c2.getAllStudent().add(st5);
st1.getAllCourse().add(c2);
st2.getAllCourse().add(c2);
st3.getAllCourse().add(c2);
st4.getAllCourse().add(c2);
st5.getAllCourse().add(c2); //输出
System.out.println(c1);
Iterator<Student> stu = c1.getAllStudent().iterator();
while(stu.hasNext())
{
System.out.println("__" + stu.next());
}
System.out.println(st1);
Iterator<Course> cour = st1.getAllCourse().iterator();
while(cour.hasNext())
{
System.out.println( "__" + cour.next());
}
输出的结果为:
课程:java,学分:5
__学生:张三,年龄:22
__学生:王五,年龄:32
学生:张三,年龄:22
__课程:java,学分:5
__课程:linux,学分:5
java:类集操作,多对多的关系的更多相关文章
- java:类集操作总结
java:类集操作总结 1.List接口允许有重复的元素,Set接口中不允许有重复的元素 2.ArrayList,和Vector的区别 3.set依靠equals和hashCode区分 4.TreeS ...
- Java类集框架详细汇总-底层分析
前言: Java的类集框架比较多,也十分重要,在这里给出图解,可以理解为相应的继承关系,也可以当作重要知识点回顾: Collection集合接口 继承自:Iterable public interfa ...
- 浅谈java类集框架和数据结构(1)
在另外一篇博客我简单介绍了java类集框架相关代码和理论. 这一篇博客我主要分析一下各个类集框架的原理以及源码分析. 一:先谈谈LinkedList 这是LinkedList源码的开头,我们能看到几点 ...
- 专题笔记--Java 类集框架
Java 类集框架 1. Java类集框架产生的原因 在基础的应用中,我们可以通过数组来保存一组对象或者基本数据,但数组的大小是不可更改的,因此出于灵活性的考虑和对空间价值的担忧,我们可以使用链表来实 ...
- 浅谈java类集框架和数据结构(2)
继续上一篇浅谈java类集框架和数据结构(1)的内容 上一篇博文简介了java类集框架几大常见集合框架,这一篇博文主要分析一些接口特性以及性能优化. 一:List接口 List是最常见的数据结构了,主 ...
- java类集开发中一对多和多对多的关系的实现
摘自<java开发实战经典>李兴华.著 一对多的关系 一个学校可以包含多个学生,一个学生属于一个学校,那么这就是一个典型的一对多关系,此时就可以通过类集进行关系的表示. 在定义Studen ...
- Java -- Java 类集 -- 目录
13.1 认识类集 13.1.1 基本概念 13.1.2 类集框架主要接口 13.2 Collection接口 13.2.1 Collection接口的定义 13.2.2 Collection子接口的 ...
- 5.1 java类集(java学习笔记)Collection、List接口及ArrayList、LinkedList类。
一.类集 类集就是一组动态的对象数组,说类集可能不好理解,类集又称容器,容器顾名思义就是放东西的地方. 类集就是为了让我们更加简洁,方便的存放.修改.使用数据的. 二.Collection接口 我们看 ...
- Java 类集初探
类集 类集:主要功能就是Java数据结构的实现(java.util) 类集就是动态对象数组(链表也是动态数组) Collection 接口* Collection是整个类集之中单值保存的最大 父接口 ...
随机推荐
- leetCode 50.Pow(x, n) (x的n次方) 解题思路和方法
Pow(x, n) Implement pow(x, n). 思路:题目不算难.可是须要考虑的情况比較多. 详细代码例如以下: public class Solution { public doubl ...
- 内核initcall分析
linux中init相关内容定义在include/linux/init.h initcall相关定义 先看下文件说明,此文件定义的宏主要用于初始化阶段标记函数或初始化数据,之后占用的资源会被释放掉. ...
- 【SQLServer2008】之Telnet以及1433端口设置
Telnet步骤: 一.首先进入Win7控制面板,可以从开始里找到或者在桌面上找到计算机,点击进入里面也可以找到控制面板,如下图: 二.进入控制面板后,我们再找到“程序和功能”并点击进入,如下图所示: ...
- jsonp 小结
JSONP是JSON with Padding的略称. 它允许在服务器端集成Script tags返回至客户端,通过javascript callback的形式实现跨域访问(这仅仅是JSONP简单的实 ...
- Hadoop编码解码【压缩解压缩】机制具体解释(1)
想想一下,当你须要处理500TB的数据的时候,你最先要做的是存储下来. 你是选择源文件存储呢?还是处理压缩再存储?非常显然,压缩编码处理是必须的.一段刚刚捕获的60分钟原始视屏可能达到2G,经过压缩处 ...
- LOJ#10064. 「一本通 3.1 例 1」黑暗城堡
LOJ#10064. 「一本通 3.1 例 1」黑暗城堡 题目描述 你知道黑暗城堡有$N$个房间,$M$条可以制造的双向通道,以及每条通道的长度. 城堡是树形的并且满足下面的条件: 设$D_i$为如果 ...
- Java 迭代器
1.快速报错 public class FailFast { public static void main(String[] args) { List<String> c = new A ...
- Module 'curl' already loaded in Unknown on line 0
Module 'curl' already loaded in Unknown on line 0 应该是php binary已经包含curl,你又动态加载了一遍.屏蔽掉你的extension 引用, ...
- Power Designer体验之旅
版权声明:本文为博主原创文章.未经博主允许不得转载. https://blog.csdn.net/wang13667539325/article/details/36025245 从某种程度上说.不论 ...
- Linux里AWK中split函数的用法
跟java里的split函数的用法是很相像的,举例如下: The awk function split(s,a,sep) splits a string s into an awk array a u ...